资源简介
采用C#开发经过三个点绘制圆弧的测试程序, 在主界面上用鼠标左键在不同位置按下三次,将绘制经过这三个点的圆弧
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ArcPointTest
{
public partial class ArcPointTest : Form
{
Point FirstPoint = new Point();
Point SecondPoint = new Point();
Point ThirdPoint = new Point();
int PointNum;
public ArcPointTest()
{
InitializeComponent();
PointNum = 0;
}
private void MainForm_MouseClick(object sender MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Graphics g = this.CreateGraphics();
SolidBrush m_Brush = new SolidBrush(Color.Blue);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
if (PointNum == 0)
{
FirstPoint.X = e.X;
FirstPoint.Y = e.Y;
}
if (PointNum == 1)
{
SecondPoint.X = e.X;
SecondPoint.Y = e.Y;
}
if (PointNum == 2)
{
ThirdPoint.X = e.X;
ThirdPoint.Y = e.Y;
}
g.FillEllipse(m_Brush e.X - 3 e.Y - 3 6 6);
PointNum++;
if (PointNum == 3)
{
PointNum = 0;
DrawArcFromThreePoint(g FirstPoint.X FirstPoint.Y SecondPoint.X SecondPoint.Y ThirdPoint.X ThirdPoint.Y);
}
}
}
/*
* 利用三点坐标获得圆弧
*/
void DrawArcFromThreePoint(Graphics mImgGraph int x1 int y1 int x2 int y2 int x3 int y3)
{
double a = x1 - x2;
double b = y1 - y2;
double c = x1 - x3;
double d = y1 - y3;
double e = ((x1 * x1 - x2 * x2) + (y1 * y1 - y2 * y2)) / 2.0;
double f = ((x1 * x1 - x3 * x3) + (y1 * y1 - y3 * y3)) / 2.0;
double det = b * c - a * d;
if (Math.Abs(det) > 0.001)
{
//x0y0为计算得到的原点
double x0 = -(d * e - b * f) / det;
double y0 = -(a * f - c * e) / det;
SolidBrush OriginBrush = new SolidBrush(Color.Blue);
mImgGraph.FillEllipse(OriginBrush (int)(x0 - 3) (int)(y0 - 3) 6 6);
double radius = Math.Sqrt((x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0));
double angle1;
double angle2;
double angle3;
double sinValue1;
double cosValue1;
double sinValue2;
double cosValue2;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-15 08:01 ArcPointTest\
目录 0 2018-03-15 08:01 ArcPointTest\ArcPointTest\
文件 187 2018-03-15 08:01 ArcPointTest\ArcPointTest\App.config
文件 3818 2018-03-15 08:11 ArcPointTest\ArcPointTest\ArcPointTest.csproj
文件 2185 2018-03-15 08:35 ArcPointTest\ArcPointTest\MainForm.Designer.cs
文件 6100 2018-03-15 08:35 ArcPointTest\ArcPointTest\MainForm.cs
文件 5817 2018-03-15 08:35 ArcPointTest\ArcPointTest\MainForm.resx
文件 542 2018-03-15 08:01 ArcPointTest\ArcPointTest\Program.cs
目录 0 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\
文件 1454 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\AssemblyInfo.cs
文件 2854 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\Resources.Designer.cs
文件 5612 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\Resources.resx
文件 1099 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\Settings.Designer.cs
文件 249 2018-03-15 08:01 ArcPointTest\ArcPointTest\Properties\Settings.settings
目录 0 2018-03-15 08:01 ArcPointTest\ArcPointTest\bin\
目录 0 2018-03-15 08:22 ArcPointTest\ArcPointTest\bin\Debug\
文件 10752 2018-03-15 08:35 ArcPointTest\ArcPointTest\bin\Debug\ArcPointTest.exe
文件 187 2018-03-15 08:01 ArcPointTest\ArcPointTest\bin\Debug\ArcPointTest.exe.config
文件 26112 2018-03-15 08:35 ArcPointTest\ArcPointTest\bin\Debug\ArcPointTest.pdb
文件 22984 2018-03-15 08:25 ArcPointTest\ArcPointTest\bin\Debug\ArcPointTest.vshost.exe
文件 187 2018-03-15 08:01 ArcPointTest\ArcPointTest\bin\Debug\ArcPointTest.vshost.exe.config
目录 0 2018-03-15 08:36 ArcPointTest\ArcPointTest\bin\Release\
目录 0 2018-03-15 08:01 ArcPointTest\ArcPointTest\obj\
目录 0 2018-03-15 08:35 ArcPointTest\ArcPointTest\obj\Debug\
文件 180 2018-03-15 08:35 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.ArcPointTest.resources
文件 180 2018-03-15 08:11 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.Properties.Resources.resources
文件 742 2018-03-15 08:25 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.csproj.FileListAbsolute.txt
文件 1036 2018-03-15 08:35 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.csproj.GenerateResource.Cache
文件 2209 2018-03-15 08:01 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.csprojResolveAssemblyReference.cache
文件 10752 2018-03-15 08:35 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.exe
文件 26112 2018-03-15 08:35 ArcPointTest\ArcPointTest\obj\Debug\ArcPointTest.pdb
............此处省略8个文件信息
相关资源
- 漂亮的C#自绘菜单、ToolBar和状态栏
- 二维坐标点按行排序C#VS2008工程源代码
- C# socket通信允许发送消息,图片,与
- C# 绘制多边形,支持撤销 删除 编辑
- c# 导出oracle数据库下所有表结构
- c# winform wia 调用扫描仪
- C#软件注册试用期限代码.zip
- C# 获取图片某像素点RGB565值
- 火币网REST API C#版
- 五子棋对战用C#编写的
- C#串口调试助手_VS2010()
- C# 软件注册期限验证代码
- C# 敏感字过滤 内含敏感字字典两个字
- Skyline开发入门C#
- C# 流数据旋转 90度 图像旋转 90度
- c# rgb565 转 rgb24
- c# 学生成绩管理系统
- C#实现USB设备通信
- C#使用NI-VISA控制仪器
- MODBUS TCP C# 源码 -- 测试过信捷PLC
- C# 增量式PID控制
- c# 动态编译代码 执行脚本代码 关键字
- C# 新手:在窗体上显示图片和文字
- 常用的7种 C# 遗传算法源码集
- C#设置和获取输入法一例 一个简单的
- c# icon 图标 特效 WINDOWS任务栏 动态生
- c# MJPEG STREAM SERVER AND CLIENT
- 基于控制台实现的贪吃蛇
- 学生成绩管理系统 c#+Access
- C#淘宝秒杀源码
评论
共有 条评论