资源简介
使用C#实现的delaunay三角网生成算法。使用说明:运行后在窗口中单击鼠标添加样采样点,当采样点大于等于3时自动生成delaunay三角网;点击工具栏上的按钮可以显示每个三角形的外心。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace delaunay2
{
public partial class Form1 : Form
{
public int tPoints = 0;
int HowMany = 0;
Point point = new Point();
Point point1 = new Point();
Point point2 = new Point();
Point point3 = new Point();
Pen p = new Pen(Color.Red 2);
Pen p3 = new Pen(Color.Yellow 2);
Graphics g;
datatype dt = new datatype();
// PainOutLine POL = new PainOutLine();
public Form1()
{
InitializeComponent();
}
private void Form1_MouseDown(object sender MouseEventArgs e)
{
//Set Vertex coordinates where you clicked the form
dt.Vertex[tPoints].x = e.X;
dt.Vertex[tPoints].y = e.Y;
//Perform Triangulation Function if there are more than 2 points
if (tPoints > 2)
{
// set form‘s color as white
g.Clear(Color.White);
function fu = new function();
HowMany = fu.Triangulate(tPoints dt);
}
else
{
point = new Point(e.X e.Y);
g = this.CreateGraphics();
g.DrawEllipse(p e.X e.Y 3 3);
Update();
}
tPoints++;
Label1.Text = “点个数是 “ + tPoints;
Label2.Text = “三角形个数是“ + HowMany;
for (int i = 1; i <= HowMany; i++)
{
point1 = new Point(Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv0].x) Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv0].y));
point2 = new Point(Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv1].x) Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv1].y));
point3 = new Point(Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv2].x) Convert.ToInt32(dt.Vertex[dt.Triangle[i].vv2].y));
g.DrawLine(p point1 point2);
g.DrawLine(p point2 point3);
g.DrawLine(p point1 point3);
}
}
private void eXIT_Click(object sender EventArgs e)
{
this.Close();
}
private void Form1_Load(object sender EventArgs e)
{
tPoints = 1;
}
private void circumcircle_Click(object sender EventArgs e)
{
barycenter bc = new barycenter();
bc.CalculateBC(HowMany dt);
for (int i = 1; i <= HowMany; i++)
{
SolidBrush brush1 = new SolidBrush(Color.Black);
g.FillEllipse(brush1 Convert.ToInt64(dt.OutHert[i].a) Convert.ToInt64(dt.OutHert[i].b) 4 4);
}
}
private void connect_Click(object sender EventArgs e)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-02-19 20:55 delaunay2\
目录 0 2013-02-19 20:56 delaunay2\delaunay2\
文件 869 2013-02-19 20:55 delaunay2\delaunay2.sln
文件 19456 2013-02-20 14:52 delaunay2\delaunay2.suo
目录 0 2013-02-19 20:55 delaunay2\delaunay2\bin\
目录 0 2013-02-19 22:53 delaunay2\delaunay2\bin\Debug\
文件 21504 2013-02-20 19:07 delaunay2\delaunay2\bin\Debug\delaunay2.exe
文件 34304 2013-02-20 19:07 delaunay2\delaunay2\bin\Debug\delaunay2.pdb
文件 11600 2013-02-20 19:09 delaunay2\delaunay2\bin\Debug\delaunay2.vshost.exe
文件 490 2010-03-17 22:39 delaunay2\delaunay2\bin\Debug\delaunay2.vshost.exe.manifest
文件 3677 2013-02-19 21:32 delaunay2\delaunay2\delaunay2.csproj
文件 20911 2013-02-20 19:07 delaunay2\delaunay2\Form1.cs
文件 6158 2013-02-20 14:42 delaunay2\delaunay2\Form1.Designer.cs
文件 9876 2013-02-20 14:42 delaunay2\delaunay2\Form1.resx
目录 0 2013-02-19 20:55 delaunay2\delaunay2\obj\
目录 0 2013-02-19 20:55 delaunay2\delaunay2\obj\x86\
目录 0 2013-02-20 19:07 delaunay2\delaunay2\obj\x86\Debug\
文件 637 2013-02-20 19:09 delaunay2\delaunay2\obj\x86\Debug\delaunay2.csproj.FileListAbsolute.txt
文件 21504 2013-02-20 19:07 delaunay2\delaunay2\obj\x86\Debug\delaunay2.exe
文件 2775 2013-02-20 14:42 delaunay2\delaunay2\obj\x86\Debug\delaunay2.Form1.resources
文件 34304 2013-02-20 19:07 delaunay2\delaunay2\obj\x86\Debug\delaunay2.pdb
文件 180 2013-02-19 22:52 delaunay2\delaunay2\obj\x86\Debug\delaunay2.Properties.Resources.resources
文件 4440 2013-02-20 14:15 delaunay2\delaunay2\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6196 2013-02-20 19:07 delaunay2\delaunay2\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 286 2013-02-20 14:42 delaunay2\delaunay2\obj\x86\Debug\GenerateResource.read.1.tlog
文件 538 2013-02-20 14:42 delaunay2\delaunay2\obj\x86\Debug\GenerateResource.write.1.tlog
文件 7897 2013-02-20 14:24 delaunay2\delaunay2\obj\x86\Debug\ResolveAssemblyReference.cache
目录 0 2013-02-19 20:55 delaunay2\delaunay2\obj\x86\Debug\TempPE\
文件 490 2013-02-19 22:53 delaunay2\delaunay2\Program.cs
目录 0 2013-02-19 20:55 delaunay2\delaunay2\Properties\
文件 1350 2013-02-19 20:55 delaunay2\delaunay2\Properties\AssemblyInfo.cs
............此处省略4个文件信息
- 上一篇:JSON.NET源码
- 下一篇:C# 实现Windows任务管理器源代码
相关资源
- C# 实现Windows任务管理器源代码
- 最完整的一套C#读取与写入GIS地图数据
- C#实现的表达式解析与计算动态库TE
- C#贪吃蛇C#贪吃蛇C#贪吃蛇
- 写字板C#写的windows窗体编程
- c# 图像 图像放大 图像放大缩小 以鼠
- Visual C#.NET串口通信及测控应用典型超
- C#实现图像腐蚀运算、膨胀运算、开运
- C#建立最简单的Web服务,无需IIS
- [免积分]C#制作的Winform窗体设计器(仿
- C#+ComboBox联想输入+代码类
- 比较完善的C#中调用mapx教程
- C# 课程设计 员工管理信息系统 案例
- asp.net做的酒店客房管理系统
- c# 哈夫曼编码 压缩文件
- C#源码-影院售票系统
- C# winform 子窗体调用父窗体函数实现关
- C#实现KD树 K近邻搜索
- 用C#做个简单的计时器秒表功能
- C#完成DDA算法的实现
-
xm
l文件操作 C#源码 - c#软件雷塞运动控制卡点动程序
- C#高级编程第9版
- vs2010c#的arcengine按属性选择,并把选择
- vs2010c#开发arcengine实现按属性选择和按
- 最短路径算法c# 最短路径算法
- C#下开发HID设备的源码+
- 基于C#net4.5实现最简单的websocket客户端
- C#2.0进程CPU占用率
- C#模拟实现自动化测试架构
评论
共有 条评论