資源簡介
本實例實現了通過不斷點擊畫布動態生成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?????????????{???????????????
????????????????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?????????????{
????????????????if?(Convert.ToInt16(arrX[i])?????????????????????xmin?=?Convert.ToInt16(arrX[i]);
????????????????if?(Convert.ToInt16(arrX[i])?>?xmax)
????????????????????xmax?=?Convert.ToInt16(arrX[i]);
????????????????if?(Convert.ToInt16(arrY[i])?????????????????????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個文件信息
評論
共有 條評論