资源简介
运用生长法实现DTIN的生成,先生成随机点,然后采用三角形生长算法形成三角形。采用动态数组,所以在三角网产生之后也能将后来产生的点加入到新的三角网之中。
代码片段和文件信息
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;
using System.Collections;
using CC;
namespace DTIN
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Graphics g = null;
private Pen pen = new Pen(Color.Black 1);
private Brush brush = Brushes.Red;
private ArrayList list = new ArrayList();//记录点的数组
private ArrayList linelist = new ArrayList();
public float Angle(Point cen Point first Point second)//三个点形成的三角形,CEN为顶点对应的夹角
{
float dx1 dx2 dy1 dy2;
float angle;
dx1 = first.X - cen.X;
dy1 = first.Y - cen.Y;
dx2 = second.X - cen.X;
dy2 = second.Y - cen.Y;
float c = (float)Math.Sqrt(dx1 * dx1 + dy1 * dy1) * (float)Math.Sqrt(dx2 * dx2 + dy2 * dy2);
if (c == 0) return -1;
angle = (float)Math.Acos((dx1 * dx2 + dy1 * dy2) / c);
return angle;
}
public double Distance(Point first Point second)//两点距离
{
double dis;
dis = Math.Sqrt((second.Y - first.Y) * (second.Y - first.Y) + (second.X - first.X) * (second.X - first.X));
return dis;
}
private void button1_Click(object sender EventArgs e)
{
try
{
double angle1;
this.Refresh();
ArrayList tinline = new ArrayList();
//定义与第一点最近的点
double mindis = Distance((Point)list[0] (Point)list[1]);
double dis;
int count = 0;
int count1 = 0;
int count2 = 0;
Line tl = new Line();
for (int j=0; j < list.Count - 1; j++)
{
for (int i = j+1; i < list.Count; i++)
{
dis = Distance((Point)list[0] (Point)list[i]);
if (dis < mindis)
{
mindis = dis;
count1 = j;
count2 = i;
}
}
}
//将第一条边反向以进行三角形扩展
tl.Begin = (Point)list[count1];
tl.End = (Point)list[count2];
tinline.Add(tl);
Line line = new Line();
Point a = ((Line)tinline[0]).Begin;
Point b = ((Line)tinline[0]).End;
line.Begin = b;
line.End = a;
tinline.Add(line);
//对每一条边进行扩展
for (int j = 0; j < tinline.Count; j++)
{
double t = -1;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11776 2012-12-16 16:01 DTIN\DTIN\bin\Debug\DTIN.exe
文件 30208 2012-12-16 16:01 DTIN\DTIN\bin\Debug\DTIN.pdb
文件 14328 2012-12-18 15:06 DTIN\DTIN\bin\Debug\DTIN.vshost.exe
文件 490 2009-06-11 05:14 DTIN\DTIN\bin\Debug\DTIN.vshost.exe.manifest
文件 3789 2012-12-16 13:52 DTIN\DTIN\DTIN.csproj
文件 9192 2012-12-16 16:01 DTIN\DTIN\Form1.cs
文件 2953 2012-12-16 16:01 DTIN\DTIN\Form1.Designer.cs
文件 5814 2012-12-16 16:01 DTIN\DTIN\Form1.resx
文件 374 2012-12-16 13:38 DTIN\DTIN\Line.cs
文件 767 2012-12-18 15:06 DTIN\DTIN\obj\Debug\DTIN.csproj.FileListAbsolute.txt
文件 847 2012-12-16 16:01 DTIN\DTIN\obj\Debug\DTIN.csproj.GenerateResource.Cache
文件 11776 2012-12-16 16:01 DTIN\DTIN\obj\Debug\DTIN.exe
文件 180 2012-12-16 16:01 DTIN\DTIN\obj\Debug\DTIN.Form1.resources
文件 30208 2012-12-16 16:01 DTIN\DTIN\obj\Debug\DTIN.pdb
文件 180 2012-12-16 13:52 DTIN\DTIN\obj\Debug\DTIN.Properties.Resources.resources
文件 508 2012-12-16 14:24 DTIN\DTIN\Program.cs
文件 1340 2012-12-16 13:26 DTIN\DTIN\Properties\AssemblyInfo.cs
文件 2858 2012-12-16 13:26 DTIN\DTIN\Properties\Resources.Designer.cs
文件 5612 2012-12-16 13:26 DTIN\DTIN\Properties\Resources.resx
文件 1089 2012-12-16 13:26 DTIN\DTIN\Properties\Settings.Designer.cs
文件 249 2012-12-16 13:26 DTIN\DTIN\Properties\Settings.settings
文件 902 2012-12-16 13:26 DTIN\DTIN.sln
..A..H. 16384 2012-12-18 15:23 DTIN\DTIN.suo
目录 0 2012-12-16 13:33 DTIN\DTIN\obj\Debug\Refactor
目录 0 2012-12-16 13:26 DTIN\DTIN\obj\Debug\TempPE
目录 0 2013-02-25 16:11 DTIN\DTIN\bin\Debug
目录 0 2013-02-25 16:11 DTIN\DTIN\obj\Debug
目录 0 2013-02-25 16:11 DTIN\DTIN\bin
目录 0 2013-02-25 16:11 DTIN\DTIN\obj
目录 0 2013-02-25 16:11 DTIN\DTIN\Properties
............此处省略5个文件信息
评论
共有 条评论