论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VB6.0 >

A400223用Visual Basic 开发交互式CAD系统

(二)绘图代码设计

内容来自论文无忧网 www.paper51.com

图3-5 “绘图”菜单

copyright paper51.com

绘图在CAD系统是必不可少的。我只做了直线、多义线、圆、圆弧四个选项。绘图离不开坐标系统。因为在VB中,只有缺省坐标和自定义坐标两个概念。其中,缺省坐标的原点在于窗口的左上角,横坐标向右为正; 纵坐标向下为正。 内容来自论文无忧网 www.paper51.com

交互式CAD系统可以实现用鼠标交互式地输入数据。采用面向对象的编程技术,需要首先创建一个图元系列类和一个命令系列类。定义绘图时的交互过程。定义好类以后,再定义类的属性及调用类的方法就可以进行交互绘图了。交互式鼠标的绘图行为,可以在屏幕上移动鼠标光标,并根据光标处的坐标进行绘图。这样整个绘图过程就简单多了,而且也可以随用户的意愿来决定绘图的大小或长度等。用鼠标事件,单击鼠标左键时,开始绘图:Public Sub LeftButton(X As Single As Single);bolDraw=True 内容来自www.paper51.com

单击鼠标右键时,取消绘图:Public Sub LeftButtonDown(X As Single,Y As Single);bolDraw=False

paper51.com

(1)直线

http://www.paper51.com

用Line 方法绘制 paper51.com

语法:Object.Line[Step](x1,y1)[Step](x2,y2),[color],[B][F]

http://www.paper51.com

其中,object:(可选)对象表达式。如果object省略,具有焦点的窗体作为object。

copyright paper51.com

Stept:(可选)是关键字,指定起点坐标,相对于CuttentX和 CurrentY 所提供的的当前图标坐标。

paper51.com

x1,y1: (可选)Single,直线的起点坐标。ScaleMode属性决定了使用的度量单位。如果省略,线起始于由CurrentX和CurrentY指定的位置。

内容来自www.paper51.com

(2)多义线

copyright paper51.com

是由多条直线组成,所以与绘制直线是同一个道理。多义线用Line 方法将多义线的各个顶点一次连线。 copyright paper51.com

(3)绘制圆形

http://www.paper51.com

使用Circle函数。 copyright paper51.com

语法 :object.Circle[Stept](x,y),radius,[color,start,end,aspect] paper51.com

其中,object:(可选)对象表达式。如果object省略,具有焦点的窗体作为object。

内容来自论文无忧网 www.paper51.com

Stept:(可选)是关键字,指定圆的中心,相对于object的CuttentX和 CurrentY 所提供的坐标。 http://www.paper51.com

x,y: (必须写)Single 圆的中心坐标。Object的ScaleMode属性决定使用的度量单位。

http://www.paper51.com

radius:(必须选)Single,圆的半径。Object的ScaleMode属性决定使用的度量单位。 copyright paper51.com

Start,end:(可选)Single

内容来自论文无忧网 www.paper51.com

Aspect: (可选)Single,圆的纵横尺寸比。缺省值为1.0

paper51.com

(4)圆弧

内容来自论文无忧网 www.paper51.com

绘圆弧比起绘圆要复杂一点,本系统采用圆心起点和终点绘制圆弧,除了需要知道圆心以外,还要知道圆弧的起点的终点的坐标。 内容来自论文无忧网 www.paper51.com

语法:object.Circle[Stept](x,y),radius,[color,start,end,aspect]

paper51.com

用Circle 方法绘圆弧时,需要知道圆弧的起点和终点与圆心连接和X轴正向所成的角度。圆弧的半径可以根据圆心与起点的距离得到。Start和end分别指定弧的起点和终点相对于中心点的连线与X轴正向所成的角度,用弧度表示。范围在-2*pi(π)到2*pi(π)之间,缺省时为0。返回点pBegin 到点pEnd的连线与X轴正向的夹角,用弧度表示。

paper51.com

`如果重点坐标大于、等于起点坐标。并且终点坐标大于、等于起点坐标 copyright paper51.com

IfpEnd.x>=pBegin.x And pEnd.y>=pBegin.y Then copyright paper51.com

GetAngle=sita

copyright paper51.com

`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标大于、等于起点纵坐标 copyright paper51.com

ElseIf pEnd.x<= pBegin.xAnd pEnd.y>=pBegin.y Then

paper51.com

GetAngle=PI-sita

paper51.com

`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标

paper51.com

ElseIf pEnd.x<= pBegin.xAnd pEnd.y<=pBegin.y Then

http://www.paper51.com

GetAngle=PI+sita 内容来自www.paper51.com

`如果终点横坐标大于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标

copyright paper51.com

ElseIf pEnd.x〉= pBegin.x AndpEnd.y<=pBegin.y Then

paper51.com

GetAngle=2*PI-sita

内容来自论文无忧网 www.paper51.com

……………

内容来自www.paper51.com

…………… http://www.paper51.com

……………

paper51.com

End if copyright paper51.com

计算圆弧的起始点:Angle1=GetAngle(m_pCenter,m_pBegin) http://www.paper51.com

计算圆弧终止角:Angle2=GetAngle(m_pCenter,m_pEnd) 内容来自论文无忧网 www.paper51.com

------分隔线----------------------------
联系方式