优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

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

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

四、系统总体设计
交互式CAD系统的总体设计
设计交互式CAD系统首先应该具备一个控制系统的主控窗口,就是交互式CAD的界面。主控模块分绘图、编辑、缩放三个子模块。我做的系统虽说主要围绕缩放功能,但也是以绘图模块所绘制的图形来实现,所以也是系统中必不可少的部分。第一个子模块为绘图部分,主要有直线、多义线、圆、圆弧。第二个子模块为编辑部分。第三个子模块为图形的缩放部分,也是本系统所要重点设计的部分。所以在本论文当中主要围绕图元的放大、缩小、 局部放大、全屏显示这四个部分。 【www.think58.com计算机毕业论文网】 think58.com [资料来源:http://think58.com]


图3-1系统的总体设计
五、 详细设计
(一)界面制作
界面制作首先要想一想要设计一个什么样的界面,而且还要遵循很多原则。比如有美学方面的,也有习惯方面的。在总体设计原则的指导下,充分考虑细节问题 。
(1)制作启动窗口
实现交互绘制图元,首先需要创建图形的界面,然后再窗体模块中添加事件代码。在创建界面之前我在设计里添加了启动窗口。制作启动窗口:
①单击工程菜单的添加窗体
②点击添加窗体中的展示屏幕。屏幕上的内容可以在属性窗口中修改。
(2)菜单设计
我的设计里主要有绘图、编辑、缩放等菜单。如总体设计中所示的这些菜单还有各自的子菜单。制作菜单首先在窗体中添加图片框,在工具栏中打开 “菜单编辑器”,利用 “菜单编辑器”可以很方便的实现菜单的制作。
绘图菜单包括:“直线” “多义线” “圆弧” “圆”,它们的标题分别是“Line”“Polyline”“Circle”“Arc”和“Text”。
缩放菜单包括:“放大” “缩小”“局部放大” “全屏显示”, 它们的标题为“ZoomOut” “ ZoomIn” “LocalZoomOut”和“Extent”。

[资料来源:http://THINK58.com]


(3)工具栏的设计
工具条不仅使程序界面更加美观,利用工具条上的工具按钮,还能提高工作效率。状态栏可以给出当前命令的状态、操作信息、提示和反馈信息,是计算机与用户交互的一个重要窗口。所以要先创建工具条和状态栏。创建工具条可以利用VB提供的Toolbar控件和ImageList控件,利用Statusbar控件可以创建状态栏。
在工具箱中单击ImageList控件,在窗体中添加控件ImageList打开属性页对话框。对话框有三个对象分别是通用,图像,颜色。在图像选项卡中,打开的对话框中选择图片的路径和名称,图片将会显示到图片栏中(就如图3-2所示)。

图3-2图像选项
(4) 代码设计
制作菜单,工具条,状态栏后,就给VB-CAD程序添加。首先给窗体添加ImageList控件ImageList1,添加Toolbar控件,用自定义属性的“属性页”对话框建立与ImageList1控件的联系。添加这些控件之后,添加控件的事件代码。系统运行后的界面如图3-3和图3-4

图3-3主界面 图3-4窗口模板
(二)绘图代码设计

图3-5 “绘图”菜单
绘图在CAD系统是必不可少的。我只做了直线、多义线、圆、圆弧四个选项。绘图离不开坐标系统。因为在VB中,只有缺省坐标和自定义坐标两个概念。其中,缺省坐标的原点在于窗口的左上角,横坐标向右为正; 纵坐标向下为正。 think58.com [资料来源:THINK58.com]
交互式CAD系统可以实现用鼠标交互式地输入数据。采用面向对象的编程技术,需要首先创建一个图元系列类和一个命令系列类。定义绘图时的交互过程。定义好类以后,再定义类的属性及调用类的方法就可以进行交互绘图了。交互式鼠标的绘图行为,可以在屏幕上移动鼠标光标,并根据光标处的坐标进行绘图。这样整个绘图过程就简单多了,而且也可以随用户的意愿来决定绘图的大小或长度等。用鼠标事件,单击鼠标左键时,开始绘图:Public Sub LeftButton(X As Single As Single);bolDraw=True
单击鼠标右键时,取消绘图:Public Sub LeftButtonDown(X As Single,Y As Single);bolDraw=False
(1) 直线
用Line 方法绘制
语法: Object.Line[Step](x1,y1)[Step](x2,y2),[color],[B][F]
其中,object:(可选)对象表达式。如果object省略,具有焦点的窗体作为object。
Stept:(可选)是关键字,指定起点坐标,相对于CuttentX和 CurrentY 所提供的的当前图标坐标。
x1,y1: (可选)Single,直线的起点坐标。ScaleMode属性决定了使用的度量单位。如果省略,线起始于由CurrentX和CurrentY指定的位置。
(2) 多义线
是由多条直线组成,所以与绘制直线是同一个道理。多义线用Line 方法将多义线的各个顶点一次连线。

think58

[资料来源:http://THINK58.com]


(3) 绘制圆形
使用Circle函数。
语法 :object.Circle[Stept](x,y),radius,[color,start,end,aspect]
其中,object:(可选)对象表达式。如果object省略,具有焦点的窗体作为object。
Stept:(可选)是关键字,指定圆的中心,相对于object的CuttentX和 CurrentY 所提供的坐标。
x,y: (必须写)Single 圆的中心坐标。Object的ScaleMode属性决定使用的度量单位。
radius:(必须选)Single,圆的半径。Object的ScaleMode属性决定使用的度量单位。
Start,end:(可选)Single
Aspect: (可选)Single,圆的纵横尺寸比。缺省值为1.0
(4) 圆弧
绘圆弧比起绘圆要复杂一点,本系统采用圆心起点和终点绘制圆弧,除了需要知道圆心以外,还要知道圆弧的起点的终点的坐标。
语法:object.Circle[Stept](x,y),radius,[color,start,end,aspect]
用Circle 方法绘圆弧时,需要知道圆弧的起点和终点与圆心连接和X轴正向所成的角度。圆弧的半径可以根据圆心与起点的距离得到。Start和end分别指定弧的起点和终点相对于中心点的连线与X轴正向所成的角度,用弧度表示。范围在-2*pi(π)到2*pi(π)之间,缺省时为0。返回点pBegin 到点pEnd的连线与X轴正向的夹角,用弧度表示。

本文来自think58

[来源:http://www.think58.com]


`如果重点坐标大于、等于起点坐标。并且终点坐标大于、等于起点坐标
If pEnd.x>=pBegin.x And pEnd.y>=pBegin.y Then
GetAngle=sita
`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标大于、等于起点纵坐标
ElseIf pEnd.x<= pBegin.x And pEnd.y>=pBegin.y Then
GetAngle=PI-sita
`如果终点横坐标小于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标
ElseIf pEnd.x<= pBegin.x And pEnd.y<=pBegin.y Then
GetAngle=PI+sita
`如果终点横坐标大于、等于起点横坐标,并且终点纵坐标小于、等于起点纵坐标
ElseIf pEnd.x〉= pBegin.x And pEnd.y<=pBegin.y Then
GetAngle=2*PI-sita
……………
……………
……………
End if
计算圆弧的起始点:Angle1=GetAngle(m_pCenter,m_pBegin)
计算圆弧终止角:Angle2=GetAngle(m_pCenter,m_pEnd)
[资料来源:www.THINK58.com]