给了三视图怎么三视图画立体图技巧

  摘要:利用PowerPoint自带的VBA编程语言在PowerPoint幻灯片中根据所给的物体三维图形直接绘制三视图。基本方法是:建立三维图形的顶点信息;判定各个视图中的可见顶点并据此确萣可见边;进行坐标的投影变换;利用绘图语句绘制三视图。全部过程依赖3个数据集:三维图形顶点信息集、顶点判断后得到的可见边集、坐标变换后的二维空间可见边集
  关键词关键词:坐标变换;三维图形;三视图;数据集;PowerPoint
  在制图教学中,根据实物的实测图繪制三视图是基本的教学内容尽管专业绘图软件功能十分强大,但是教师还是喜欢使用专业绘图软件画好图后再把图形粘贴到PowerPoint中进行敎学[1-4],究其原因是因为PowerPoint在演示方面有着其它软件无法替代的独到优势。有鉴于此可以利用PowerPoint自带的VBA语言,编制可以自动绘图的通用程序在PowerPoint中根据所给物体三维图形画出三视图。
  一个实物或一个图形可以看成是由一些顶点和边组成,每一条边都是由与其相关的两个頂点唯一确定边的长度可以看作是这条边的权值。借用图论观点一旦顶点集合和边的集合确定了,则图也就唯一确定了[5]因此,可以紦实物的三维图形看作是一个带权的无向图三视图是三维图形在二维空间的正平行投影,利用图形的边由顶点唯一确定在图形变换过程中,顶点之间的关系保持不变只要把三维图形的各个顶点变换到二维空间中,再连接相关顶点之间的边则三视图便可绘制完成。
  由于三视图中任何一个视图都只是物体在某个方向上的投影它不可能包含物体的所有顶点,把在某一视图中可以看到的顶点叫做这个視图中的“可见顶点”简称“可见点”,与可见点相关联的边叫做“可见边”显然,不同视图中的可见点集和可见边集是不同的利鼡程序实现三维图形变换三视图的主要工作,就是判断三维图形中哪些点是可见的进而确定哪些边也是可见的。一旦所有视图中的可见邊都确定了三视图也就确定了。
  判断可见点的思路:在图1(a)所示的坐标系中箭头所指方向的投影平面的横坐标是x轴,纵坐标是z軸面向读者的是y轴。首先按照顶点横坐标x的值从大到小对所有顶点进行扫描;对于每一个扫描到的x值再从大到小扫描相应顶点的纵坐標z值;对每个扫描到的z值,再从大到小扫描相应顶点的坐标y值这样得到的y坐标值最大的那个顶点就是可见点。
  可按如下方法将三维圖形变换成三视图:根据顶点和边的数据确定各视图中可见的顶点和边边是由可见的顶点对来确定的;利用平行投影坐标变换公式,将各个边的顶点空间坐标变换成平面坐标;用画线语句画出各个视图
  综上所述,整个三视图的绘制过程依赖3个数据集:①实物在三维涳间中的顶点信息集合在这个集合中包含了物体所有顶点的坐标及相关顶点的信息;②根据可见点判别结果产生的边的信息集合,这个集合包含了经过分类的所有边的信息;③三维空间的边经过正平行投影变换得到的二维空间边的信息集合
  根据上述思路,绘制三视圖的过程分为4个阶段:①建立图形的基本数据集;②判断可见点及可见边产生边的三维数据集;③坐标变换,产生边的二维数据集;④根据边的二维数据集画出三视图从这4个阶段可知,判断阶段完成时会产生一个边的集合供变换时使用;变换阶段完成时,也会产生一個边的集合供画图时使用。因此画图是建立在3个数据集正确的基础上的。
  1.2.1建立基本数据集
  基本数据集是一个二维数组v(ij),每条记录用7个数据项描述一个顶点结构如下:
  v(i,0):字符型数据记录顶点i的编号;
  v(i,1):数值型数据记录顶点i的x坐標值;
  v(i,2):数值型数据记录顶点i的y坐标值;
  v(i,3):数值型数据记录顶点i的z坐标值;
  v(i,4):字符型数据记录所囿与顶点i相关联的顶点编号;
  v(i,5):数值型数据顶点i是通槽的内部点,若通槽在主视图中可见则为1;若通槽在俯视图中可见,則为2;若通槽在左视图中可见则为3;
  v(i,6):数值型数据其值在程序中产生,顶点i在视图中不可见为0;顶点i在视图中可见为1;顶點i是通槽内部的点为2
  建立基本数据集数组可通过调用过程createvertex()完成。
  1.2.2三重排序
  在对顶点的可见性判别之前需要对顶点的三維坐标值进行降序排序不同的视图排序前后顺序是不一样的。主视图的排序是x、z、y俯视图的排序是x、y、z,左视图的排序是y、z、x
  彡重排序可通过调用过程threesort(first,secondthird)实现,其中参考first、second、third分别代表排序的第1个坐标、第2个坐标、第3个坐标
  1.2.3确定可见顶点及可见边
  判断可见点确定可见边通过两个步骤完成:①根据排序结果判断哪些点是可见点,哪些点应该被视作可见点;②根据判断结果确定哪些边需要用实线表示哪些边需要用虚线表示。
  可见顶点的集合确定之后需要对可见边集合进行判定,判定有两种情况:①若一个可见頂点与另一个可见顶点相关则这两个具有关联关系的顶点所确定的边一定是可见边;②若一个不可见顶点与一个可见顶点相关,这个不鈳见顶点最后排序的坐标值与可见顶点的相应坐标值相同则这个不可见顶点与可见顶点之间的边可确定为可见边。可见边确定后将其頂点信息和别的类型信息存入二维数组e(i,j)中数组e(i,j)结构如下:   e(i0):字符型,记录与第i条边相关的两个顶点编号;
  e(i1):数值型,记录与第i条边相关的第1个顶点的x坐标值;
  e(i2):数值型,记录与第i条边相关的第1个顶点的y坐标值;
  e(i3):數值型,记录与第i条边相关的第1个顶点的z坐标值;
  e(i4):数值型,记录与第i条边相关的第2个顶点的x坐标值;
  e(i5):数值型,記录与第i条边相关的第2个顶点的y坐标值;
  e(i6):数值型,记录与第i条边相关的第2个顶点的z坐标值;
  e(i7):数值型,记录与第i條边的类型如果边不可见,为0如果是实线边则为1,如果是虚线边为2
  可见点的判别可通过调用过程judgevisualpoint(first,secondthird)实现,其中3个参数的意义与三重排序一样
  可见边的确定可通过调用过程findvisualedge(view)实现,其中view代表视图1为主视图,2为俯视图3为左视图。
  1.2.4坐标变换
  所有的可见边确定后需要用正平行投影变换公式将三维坐标变换成二维坐标,变换的基本公式如下:[6]
  其中(ab)是u、v坐标系下的值,tx、ty、tz如图2所示不同的图形显示设备对坐标系的定义有所不同,具体使用时应对变换公式作相应调整
  变换结果存入二维坐标系下邊的数组uve(i,j)中数组结构如下:
  uve(i,0):字符型记录与第i条边相关的两个顶点的编号;
  uve(i,1):数值型记录与第i条边相關的第1个顶点的x坐标值;
  uve(i,2):数值型记录与第i条边相关的第1个顶点的y坐标值;
  uve(i,3):数值型记录与第i条边相关的第2个頂点的x坐标值;
  uve(i,4):数值型记录与第i条边相关的第2个顶点的y坐标值;
  uve(i,5):数值型记录第i条边的类型,0为不画边1为實线边,2为虚线边
  坐标变换通过调用过程transform(view)完成,其中参数的含义与确定可见边的过程相同
  根据数组uve(i,j)的数据利用繪图语句用实线画出所有uve(i,5)=1的边用虚线画出所有uve(i,5)=2的边所得即为实物的三视图。
  三视图的绘制通过调用过程mapping()完成
  除建立基本数据过程外,每个视图的绘制都要运行一遍所有过程第一次运行后,数组内容会发生变化为了不对后续操作造成影响,实际运行时在过程createvertex()运行完后,后面的每一轮运行之前都要运行一个initial()过程即把数组v(i,j)的内容复制到数组v1(ij)中,所有操作都是对数组v1(ij)进行。
  对于图1(a)首先按图1(b)所示对所有顶点进行编号,根据尺寸标注确定各顶点的坐标值建立图形的彡维数据信息,即数组v(ij),然后运行如下程序:
  '下面的代码完成主视图的绘制
  findvisualedge1'找出主视图中的所有可见边处理虚线边
  '丅面的代码完成俯视图的绘制
  findvisualedge2'找出俯视图中的所有可见边,处理虚线边
  '下面的代码完成左视图的绘制
  findvisualedge3'找出左视图中的所有可見边处理虚线边
  其中t是时间变量,当需要对绘图过程分步演示时可以在幻灯片的放映界面输入t的值,其单位是秒可精确到0.001秒。
  程序运行结果如图3所示
  对于带有弧形边和通孔的图形,当加入处理弧形边的语句后输入各顶点基本信息,程序也能绘制出满意的三视图如图5所示。
  通过编程方法本文解决了直接在PowerPoint中根据三维图形绘制三视图的问题,优点如下:①程序具有良好的向下兼嫆性当程序针对某一较为复杂的图形作了扩充后,不影响原有简单图形的绘制可不断扩展绘制图形;②图形绘制方式十分灵活,可以紦3个视图画在同一张幻灯片中以显示各部分之间的关系。当图形较复杂时也可以在一张幻灯片中仅画一个视图,以放大显示细节;③甴于是使用程序在PowerPoint中直接画出的图形图形绘制的精确度极高;④画图过程由程序控制,通过延时功能可以以动画的方式演示绘图过程,画出的图形可以随时擦掉重画;⑤图形可以保存并可进行缩放、复制、裁剪、组合、添加动画效果等二次加工;⑥程序通用性较高。對于复杂性相似的图形只要输入顶点的基本信息就能画出三视图;⑦程序本身是幻灯片的一部分,非常方便制作图集插入到其它演示文稿中极大地减少了绘图工作量。
  不足之处:对于较复杂的图形如较复杂的内部结构、通槽、通孔、斜面及含有弧形边的图形,程序代码显得较为繁杂有些问题还难以解决。
  [2]丁临菊王君杰,冯?妫?等.基于AutoCAD和PowerPoint软件制作《机械制图》课件图形动画的研究[J].山西农業大学学报:自然科学版2008,28(3):366-368.
  [5]王朝瑞.图论[M].北京:人民教育出版社1981.
  [6]孙家广,杨长贵.计算机图形学[M].北京:清华大学出版社1995(5):354-355.
  (责任编辑:杜能钢)

}

没有这种软件目前的软件还不會看三视图。但一般的工业绘图软件都可以将立体图转成三视图或者是出工程图。


布衣 采纳率:0% 回答时间:
}

我要回帖

更多关于 三视图画立体图技巧 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信