资源简介
使用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 地图编辑、展示、鹰眼图
- 下一篇:测量程序设计,坐标正反算,方位角计算
评论
共有 条评论