• 大小: 1.50M
    文件类型: .zip
    金币: 1
    下载: 1 次
    发布日期: 2024-05-31
  • 语言: C#
  • 标签: c#  

资源简介


本实例实现了通过不断点击画布动态生成voronoi图的操作

资源截图

代码片段和文件信息

using System;
using System.Collections;
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;
using System.Drawing.Drawing2D;

namespace V图生成
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            g = pictureBox1.CreateGraphics();
        }

        //实例化绘图对象
        Graphics g;
        //定义画笔
        Pen tgPen = new Pen(Color.Red 1);
        Pen voPen = new Pen(Color.Blue 3);

        // 实例化功能类
        Voronoi voobject = new Voronoi();

        //将屏幕点击坐标加入待剖分点集
        ArrayList arrX = new ArrayList();
        ArrayList arrY = new ArrayList();

        List sitesP = new List();//点集
        List allTriangle = new List();//带超三角形D网三角形链表
        List allTriangleEnd = new List();//最终D网三角形链表
        List allTriangleRay = new List();//构建V图射线三角形列表
        List allTriangleVo = new List();//构建V图外接圆心边三角形列表
        List voTowEdge = new List();//2点vironoi边线
        List voRayEdge = new List();//vironoi射线边
        List voEdge = new List();//vironoi外接圆心边

        void spreadPoints()
        {
            //清空画布
            g.Clear(Color.White);
            //清空数据链表
            sitesP.Clear();
            allTriangle.Clear();
            allTriangleEnd.Clear();
            allTriangleRay.Clear();
            allTriangleVo.Clear();
            voRayEdge.Clear();
            voEdge.Clear();

            //点集赋值
            for (int i = 0; i < arrX.Count; i++)
            {               
                Site site = new Site(Convert.ToDouble(arrX[i]) Convert.ToDouble(arrY[i])); 
                sitesP.Add(site);
            }
            #region 构建超三角形
            //动态构建超级三角形
            long xmin xmax ymin ymax;
            long xmid ymid dx dy dmax;
            xmin = Convert.ToInt16(arrX[0]);
            ymin = Convert.ToInt16(arrY[0]);
            xmax = xmin; ymax = ymin;
            for (int i = 1; i < sitesP.Count; i++)
            {
                if (Convert.ToInt16(arrX[i]) < xmin)
                    xmin = Convert.ToInt16(arrX[i]);
                if (Convert.ToInt16(arrX[i]) > xmax)
                    xmax = Convert.ToInt16(arrX[i]);
                if (Convert.ToInt16(arrY[i]) < ymin)
                    ymin = Convert.ToInt16(arrY[i]);
                if (Convert.ToInt16(arrY[i]) > ymax)
                    ymax = Convert.ToInt16(arrY[i]);
            }
            dx = xmax - xmin; dy = ymax - ymin;
            if (dx > dy)
                dmax = dx;
            else
                dmax = dy;
            xmid = (xmax + xmin) / 2;
            ymid = (

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-10-16 18:41  Voronoi图生成\
     目录           0  2017-10-16 18:41  Voronoi图生成\V图生成\
     文件         872  2017-10-16 17:01  Voronoi图生成\V图生成.sln
     文件       22528  2017-10-19 20:06  Voronoi图生成\V图生成.suo
     目录           0  2017-10-16 18:41  Voronoi图生成\V图生成\bin\
     目录           0  2017-10-16 18:41  Voronoi图生成\V图生成\bin\Debug\
     文件      327168  2017-10-16 17:07  Voronoi图生成\V图生成\bin\Debug\V图生成.exe
     文件       50688  2017-10-16 17:07  Voronoi图生成\V图生成\bin\Debug\V图生成.pdb
     文件       11600  2017-10-19 20:02  Voronoi图生成\V图生成\bin\Debug\V图生成.vshost.exe
     文件         490  2012-06-02 22:34  Voronoi图生成\V图生成\bin\Debug\V图生成.vshost.exe.manifest
     目录           0  2017-10-16 17:01  Voronoi图生成\V图生成\bin\Release\
     文件       13037  2017-10-16 17:07  Voronoi图生成\V图生成\Form1.cs
     文件       12393  2017-10-16 17:07  Voronoi图生成\V图生成\Form1.Designer.cs
     文件      459647  2017-10-16 17:07  Voronoi图生成\V图生成\Form1.resx
     目录           0  2017-10-16 17:01  Voronoi图生成\V图生成\obj\
     目录           0  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\
     目录           0  2017-10-16 18:41  Voronoi图生成\V图生成\obj\x86\Debug\
     文件        5420  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        6698  2017-10-19 10:12  Voronoi图生成\V图生成\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件      165376  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\Debug\Interop.SpeechLib.dll
     目录           0  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\Debug\TempPE\
     文件        6016  2017-10-19 20:02  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.csproj.FileListAbsolute.txt
     文件         975  2017-10-16 17:07  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.csproj.GenerateResource.Cache
     文件         744  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.csproj.ResolveComReference.cache
     文件        9174  2017-10-16 17:01  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.csprojResolveAssemblyReference.cache
     文件      327168  2017-10-16 17:07  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.exe
     文件      302954  2017-10-16 17:07  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.Form1.resources
     文件       50688  2017-10-16 17:07  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.pdb
     文件         180  2017-10-16 17:03  Voronoi图生成\V图生成\obj\x86\Debug\V图生成.Properties.Resources.resources
     文件         491  2017-10-16 17:01  Voronoi图生成\V图生成\Program.cs
     目录           0  2017-10-16 18:41  Voronoi图生成\V图生成\Properties\
............此处省略10个文件信息

评论

共有 条评论