資源簡(jiǎn)介
C#窗體應(yīng)用程序?qū)崿F(xiàn)點(diǎn)線面等圖形元素繪制,實(shí)現(xiàn)部分CAD可用的功能

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Drawing;
namespace?CAD
{
????[Serializable]
????public?abstract?class?baseShape
????{
????????private?bool?isSelected?=?false;//標(biāo)識(shí)圖形是否被選中
????????
????????private?Point?p1;//第一個(gè)點(diǎn)
????????private?Point?p2;//第二個(gè)點(diǎn)
????????public??Color?penColor;
????????public??int?penwidth?;
????????public?void?setSelected()//設(shè)置為選中狀態(tài)
????????{
????????????this.isSelected?=?true;
????????}
????????public?void?setUnSelected()//設(shè)置為非選中狀態(tài)
????????{
????????????this.isSelected?=?false;
????????}
????????public?Point?getP1()
????????{
????????????return?p1;
????????}
????????public?void?setP1(Point?p1)
????????{
????????????this.p1?=?p1;
????????}
????????public?Point?getP2()
????????{
????????????return?p2;
????????}
????????public?void?setP2(Point?p2)
????????{
????????????this.p2?=?p2;
????????}
????????public?abstract?void?draw(Graphics?g);//畫圖形
????????public?abstract?Point[]?getAllHitPoint();//得到所有圖形
????????public?abstract?void?setHitPoint(int?hitPointIndex?Point?newPoint);//設(shè)定熱點(diǎn)
????????public?abstract?baseShape?copySelf();//復(fù)制
????????public?bool?catchHitPoint(Point?hitPoint?Point?testPoint)//測(cè)試熱點(diǎn)捕捉
????????{
????????????return?this.getHitPointRectangle(hitPoint).Contains(testPoint);
????????}
????????public?int?catchShapPoint(Point?testPoint)//捕捉圖形
????????{
????????????int?hitPointIndex?=?-1;
????????????Point[]?allHitPoint?=?this.getAllHitPoint();//的到所有的熱點(diǎn)
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(this.catchHitPoint(allHitPoint[i]?testPoint))
????????????????{
????????????????????return?i?+?1;//如果捕捉到了熱點(diǎn),返回?zé)狳c(diǎn)的索引
????????????????}
????????????}
????????????if(this.catchShape(testPoint))?return?0;//沒有捕捉到熱點(diǎn),捕捉到了圖形,返回特別熱點(diǎn)
????????????return?hitPointIndex;//返回捕捉到的人點(diǎn)
????????????}
????????public?void?drawHitPoint(Point?hitPoint?Graphics?g)//畫熱點(diǎn)
????????{
????????????g.DrawRectangle(new?Pen(Color.Red1)?this.getHitPointRectangle(hitPoint));
????????}
????????public?void?drawAllHitPoint(Graphics?g)//畫所有熱點(diǎn)
????????{
????????????Point[]?allHitPoint=this.getAllHitPoint();
????????????for(int?i=0;i<2;i++)
????????????{
????????????????this.drawHitPoint(allHitPoint[i]g);
????????????}
????????}
????????public?Rectangle?getHitPointRectangle(Point?hitPoint)//得到熱點(diǎn)矩形,以熱點(diǎn)為中心高寬5像素的矩形
????????{
????????????Rectangle?rect=new?Rectangle();
????????????rect.X=hitPoint.X-2;
????????????rect.Y=hitPoint.Y-2;
????????????rect.Width=5;
????????????rect.Height=5;
????????????return?rect;
????????}
????????public?abstract?bool?catchShape(Point?testPoint);//圖形捕捉
????????public?void?superDraw(Graphics?g)//公共畫法
????????{
????????????if(this.isSelected)?this.drawAllHitPoint(g);
????????}
????????public?static?Pen?getPen(CADframe?objCAD)//得到畫筆
????????{
????????????return?new?Pen(objCAD.clrobjCAD.lineWidth);
????????}
????}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3142??2008-08-31?14:24??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\ba
?????文件???????4823??2008-08-30?11:35??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\ba
?????文件???????3719??2008-08-31?13:33??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CAD.csproj
?????文件??????16444??2008-08-31?15:17??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CADfr
?????文件??????22421??2008-08-31?14:30??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CADfr
?????文件???????6621??2008-08-31?14:30??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CADfr
?????文件???????2989??2008-08-31?14:22??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CircleShape.cs
?????文件???????1181??2008-08-31?13:33??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\CircleTool.cs
?????文件???????6674??2008-09-01?10:12??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\EllipseShape.cs
?????文件???????1184??2008-08-31?10:44??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\EllipseTool.cs
?????文件???????3822??2008-08-31?11:52??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\HandTool.cs
?????文件???????3029??2008-08-31?12:13??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\LineShape.cs
?????文件???????1177??2008-08-30?11:33??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\LineTool.cs
?????文件????????465??2008-08-26?15:08??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Program.cs
?????文件???????1162??2008-08-26?14:31??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Properties\AssemblyInfo.cs
?????文件???????2828??2008-08-28?18:44??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Properties\Resources.Designer.cs
?????文件???????5612??2008-08-26?14:31??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Properties\Resources.resx
?????文件???????1099??2008-08-28?18:44??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Properties\Settings.Designer.cs
?????文件????????249??2008-08-26?14:31??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\Properties\Settings.settings
?????文件???????7335??2008-08-31?15:12??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\RectangleShape.cs
?????文件???????1188??2008-08-31?09:37??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD\RectangleTool.cs
?????文件????????898??2008-08-26?14:31??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD.sln
????..A..H.?????35328??2008-09-01?10:13??C#程序?qū)崿F(xiàn)CAD\CAD\Backup\CAD.suo
?????文件???????3142??2008-08-31?14:24??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\ba
?????文件???????4823??2011-11-22?19:48??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\ba
?????文件???????3890??2011-10-19?20:48??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\CAD.csproj
?????文件??????16579??2011-11-23?17:15??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\CADfr
?????文件??????22553??2011-11-22?16:17??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\CADfr
?????文件???????6621??2011-11-22?16:17??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\CADfr
?????文件???????2989??2008-08-31?14:22??C#程序?qū)崿F(xiàn)CAD\CAD\Backup1\CAD\CircleShape.cs
............此處省略81個(gè)文件信息
評(píng)論
共有 條評(píng)論