資源簡介
使用C#實現計算機圖形學中的多邊形裁剪算法,界面友好,功能完善

代碼片段和文件信息
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?ClipPloygon
{
????public?partial?class?FrmMain?:?Form
????{
????????public?FrmMain()
????????{
????????????InitializeComponent();
????????????myBitmap?=?new?Bitmap(picShow.Width?picShow.Height);//創建畫布?
????????}
????????List?mcp?=?new?List();?//?多邊形頂點列表
????????List?mwp?=?new?List();?//?裁剪窗口頂點列表
????????Bitmap?myBitmap;?//定義畫布
????????Point?P;
????????Point?SP;
????????Point?SPR;
????????Point?EP;
????????Point?EPL;
????????int?Flag;?//選擇繪制圖形類型
????????bool?drag;//標記鼠標是否拖拽
????????Pen?myPen;
????????#region?繪圖類別
????????//繪制多邊形
????????private?void?btnDrawPolygon_Click(object?sender?EventArgs?e)
????????{
????????????picShow.Cursor?=?System.Windows.Forms.Cursors.Cross;
????????????Flag?=?2;
????????????mcp.Clear();
????????}
????????private?void?btnRectant_Click(object?sender?EventArgs?e)
????????{
????????????picShow.Cursor?=?System.Windows.Forms.Cursors.Cross;
????????????Flag?=?1;
????????????mwp.Clear();
????????}
????????#endregion
????????#region?鼠標事件
????????private?void?picShow_MouseDown(object?sender?MouseEventArgs?e)
????????{
????????????P.X?=?e.X;
????????????P.Y?=?e.Y;
????????????drag?=?true;
????????????picShow.Image?=?myBitmap;
????????????using?(Graphics?g?=?Graphics.FromImage(picShow.Image))
????????????{
????????????????if?(Flag?==?1)
????????????????{
????????????????????SP.X?=?P.X;
????????????????????SP.Y?=?P.Y;
????????????????}
????????????????else
????????????????{???????????????????
????????????????????mcp.Add(P);
????????????????????if?(mcp.Count?>?1)
????????????????????{
????????????????????????g.DrawLine(Pens.Blue?mcp[mcp.Count?-?2]?mcp[mcp.Count?-?1]);
????????????????????}
????????????????}????????????
????????????}
????????????
????????}
????????private?void?picShow_MouseMove(object?sender?MouseEventArgs?e)
????????{
????????????if?(drag)
????????????{
????????????????if?(Flag?==?1)
????????????????{
????????????????????picShow.Image?=?(Bitmap)myBitmap.Clone();//將Graphics對象復制給Bitmap對象
????????????????????using?(Graphics?g?=?Graphics.FromImage(picShow.Image))
????????????????????{
????????????????????????Rectangle?rect?=?new?Rectangle(SP.X?SP.Y?e.X?-?SP.X?e.Y?-?SP.Y);
????????????????????????g.DrawRectangle(Pens.Black?rect);
????????????????????}
????????????????}
????????????}
????????}
????????private?void?picShow_MouseUp(object?sender?MouseEventArgs?e)
????????{
????????????drag?=?false;
????????????picShow.Image?=?myBitmap;
????????????using?(Graphics?g?=?Graphics.FromImage(picShow.Image))
????????????{
????????????????if?(Flag?==?1)
????????????????{
????????????????????EP.X?=?e.X;
????????????????????EP.Y?=?e.Y;
????????????????????Rectangle?rect?=?new?Rectangle(SP.X?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\
?????文件????????3618??2013-11-05?01:31??ClipPolygon\ClipLine\ClipPloygon.csproj
?????文件????????6267??2013-11-05?16:25??ClipPolygon\ClipLine\FrmMain.Designer.cs
?????文件????????9389??2013-11-07?10:08??ClipPolygon\ClipLine\FrmMain.cs
?????文件????????5817??2013-11-05?16:25??ClipPolygon\ClipLine\FrmMain.resx
?????文件?????????494??2013-11-05?01:31??ClipPolygon\ClipLine\Program.cs
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\Properties\
?????文件????????1348??2013-11-01?16:10??ClipPolygon\ClipLine\Properties\AssemblyInfo.cs
?????文件????????2861??2013-11-05?01:31??ClipPolygon\ClipLine\Properties\Resources.Designer.cs
?????文件????????5612??2013-11-01?16:10??ClipPolygon\ClipLine\Properties\Resources.resx
?????文件????????1110??2013-11-05?01:31??ClipPolygon\ClipLine\Properties\Settings.Designer.cs
?????文件?????????249??2013-11-01?16:10??ClipPolygon\ClipLine\Properties\Settings.settings
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\bin\
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\bin\Debug\
?????文件???????13824??2013-11-07?10:08??ClipPolygon\ClipLine\bin\Debug\ClipLine.exe
?????文件???????34304??2013-11-07?10:08??ClipPolygon\ClipLine\bin\Debug\ClipLine.pdb
?????文件???????11608??2013-12-04?22:02??ClipPolygon\ClipLine\bin\Debug\ClipLine.vshost.exe
?????文件?????????490??2010-03-17?22:39??ClipPolygon\ClipLine\bin\Debug\ClipLine.vshost.exe.manifest
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\obj\
?????目錄???????????0??2013-11-05?03:11??ClipPolygon\ClipLine\obj\x86\
?????目錄???????????0??2013-11-05?03:24??ClipPolygon\ClipLine\obj\x86\Debug\
?????文件????????3949??2013-11-05?02:38??ClipPolygon\ClipLine\obj\x86\Debug\ClipLine.csproj.FileListAbsolute.txt
?????文件???????13824??2013-11-07?10:08??ClipPolygon\ClipLine\obj\x86\Debug\ClipLine.exe
?????文件???????34304??2013-11-07?10:08??ClipPolygon\ClipLine\obj\x86\Debug\ClipLine.pdb
?????文件?????????180??2013-11-05?16:25??ClipPolygon\ClipLine\obj\x86\Debug\ClipPloygon.FrmMain.resources
?????文件?????????180??2013-11-05?15:31??ClipPolygon\ClipLine\obj\x86\Debug\ClipPloygon.Properties.Resources.resources
?????文件????????3259??2013-12-04?22:04??ClipPolygon\ClipLine\obj\x86\Debug\ClipPloygon.csproj.FileListAbsolute.txt
?????文件????????6056??2013-11-24?16:29??ClipPolygon\ClipLine\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????17192??2013-11-05?16:25??ClipPolygon\ClipLine\obj\x86\Debug\GenerateResource-ResGen.read.1.tlog
?????文件????????5230??2013-11-05?16:25??ClipPolygon\ClipLine\obj\x86\Debug\GenerateResource-ResGen.write.1.tlog
............此處省略11個文件信息
- 上一篇:c#+AE 地圖編輯、展示、鷹眼圖
- 下一篇:測量程序設計,坐標正反算,方位角計算
評論
共有 條評論