资源简介
使用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# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
- C# 使用ListView控件实现图片浏览器(源
- C#简单窗体聊天程序
- C#指纹识别系统程序 报告
- c# 高校档案信息管理系统
- c#向word文件插入图片
- C#左侧导航菜单(动态生成)
评论
共有 条评论