2.13.3 凸包、截面、切割、折展

返回帮助目录 凸包截面切割折展

凸包(凸多面体)

前面,我们在绘制自定义的多面体时一般是先添加各顶点,然后再分别添加棱与面。能否直接根据顶点自动构建多面体呢?这就要用到“凸包”命令了。那么,什么是凸包呢?这里只讲简单易懂的定义。在三维空间中点集S的凸包定义为包含S中的所有点的最小的凸多面体。就是知道若干个点,求多面体,刚好能包住这些点。下面左图是8个点,右图显示的是凸包。其中有7个点刚好是顶点,点F在内部。

在图霸中选择各种类型的点(至少有四点不共面,能构成多面体),然后用【插入】-【组件模型】-【凸包】命令,可以添加凸包。也可以不选点,在对话框中选择顶点集。

可以在构建时或构建后双击对象时修改显示方式。

构建后的凸包与所选点将脱离关系。选择点,删除后,光照处理,如图:

凸包作为一个图元,是一个整体,不能选中它的线或面。但我们可以根据它,快速创建一个多面体。选中一个凸包,用【定位图】命令,将添加一个多面体。这时就可以选择点线面进行修改了。如图:

我们要创建复杂的多面体时,可以先构建点集(鼠标点按时上下拖动改变Z值,不能全添加在水平面上),再加凸包,然后转为多面体,最后删除凸包。当然,凸包还有更多用处,继续向下看。

截面

选择一个凸包和一个面,用【插入】-【组件模型】-【截面】命令,可以添加平面与多面体的截面图(截线,用面显示不实用)。改变平面,截面动态变化。可以用它研究平面与正方体截面的形状。

 

多面体切割

1。选中一个凸包和几个面(不多于10个),用【插入】-【组件模型】-【切割】命令,可以添加平面切多面体的动态图。单击“切割”按钮,切面两边的多面体分开。改变面的位置,切割要重新开始。可以对切割后的图设置显示方式。如下图用“自动虚实”方式显示,自动隐藏了原来的凸包。

2。若不选择面,仅选择一个凸包,程序自动加入切割面,3个以内时用坐标面。4-10个切割面均是两两相交的,能使切得的部分最多。下图演示三个切割面切割正方体时的情况。用自己构建并选择的面可以动态演示各种切得的块数。

切割按钮的属性中,参数的范围从0到切割面数,也可以修改为仅研究前几次切割,后一个值小于切割面数即可。

选中切割图,可以修改属性。如果面是自动给出的,可以修改切割面的个数。可以修改显示方式、修改颜色。

下图是棱长为20的立方体被10个面切割时,显示实线时的情况,在程序中可演示动态图:

 可以用数学归纳法证明:n个平面最多可把空间分成 个部分,上图就是n=10时分割的最多的情形。

表面展开图

选择一个凸包,用【插入】-【组件模型】-【折展】命令,可以添加多面体表面的折叠展开图,贴图是程序随机选取的,不必改。单击“折展”按钮,观看展开与折叠的动画。

选择展开图,用【对象属性】命令打开对话框,可以设置展开图的显示方式及展开方式等。上图中八棱台展开时,上底先展开,然后是侧面,最后是底面,按层次依序进行,这就是“分级展开”。若勾选“同时展开”,则上底面与侧面同时进行(这时还要改“按钮”中的参数,后面讲到)。复杂的多面体可能有几十级(也许几百个面)。你的显卡支持的级别是有限制的,级数太大时程序会提示你,展开图会不正常。

选择“折展”按钮,它也是一个参数的动画按钮。参数与折叠时的各层次的面的转角有关。当展开图为水平放置时,参数0-1可以使这个图全部转到与多面体的一个面(一般是底面或是最下面的一个面)重合,该面级别最低,可定义为1级面。参数为1-2时,与底面相邻的面开始折叠,这些面的级别定义为2。参数为2-3时与2级面相邻的未折叠的面再开始折叠。依次类推,最后完成分级折叠。展开时级别高的,一般也是上面的面先打开,最后底面不动或转到水平位置。

参数范围可取小数。在“分级展开”时,你试验一下从2到3的含义:它表示第二层次的面展开后,动画显示第三层次的面展开的过程 。请你在程序中试验从1.5到2.5的作用。

在“同时展开时”,参数一般设为1到2。因为底面平放时,其它面都是同时开始展开或折叠。

新建折展按钮时,参数一般从1开始。那么参数0到1又是何意呢?它表示的是最后展开面的平展过程。我们添加一个“正八面体”的定位图,选择所有顶点后,插入一个凸包,删除所有点、线、面。选择凸包,添加“折展图”。改属性为同时展开,自动虚实。这时会发现展开图贴在一个侧面上,由于八面体下面是一个点,不同于棱台。我们想把这个展开图水平放置,就可以把按钮的参数改为从0开始。动画效果如下图,观看最后展开面水平放置的过程。

当动画从0开始,设置为反向时。最后显示的是水平放置的展开图。用【二维视图】命令,可以看到多面体各个面的实际大小。打印到纸上,剪剪贴贴(留下边界处的粘贴位),做个几何体模型就很方便了。(将来也许直接就3D打印了,哈哈)。

 

返回帮助目录 进入自定义工具