• 大小: 65KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: C#
  • 标签: delaunay  TIN  C#  

资源简介

使用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个文件信息

评论

共有 条评论