查看原文
其他

从菱形十二面体说起:法线和布尔运算

3D科研绘图 2021-12-21

菱形十二面体,即十二个面均为菱形的一种多面体。1865年由比利时数学家Eugène Charles Catalan(欧仁·查理·卡塔兰)最先描述,因此也是卡塔兰立体中的一种,如图1所示。在空间点群理论中,这一立体属于Oh群。它能够独立地铺满整个三维空间。


 

图1. 菱形十二面体(图片来自wikipedia)


下面是其展开面,它是由12个全等的菱形构成,其中菱形的钝角为109.47°,锐角70.53°,长对角线/短对角线/边长=。菱形十二面体有14个顶点,24条边,请自动脑补欧拉公式V+F-E=2。


图2. 菱形十二面体之面的展开图(图片来自wikipedia)


也许跟晶体学相关的软件里面能够直接调出这样一个立体模型,如果这样你就满足了的话,请无视以下内容。因为我要说的3ds MAX软件,在扩展基本体选项里面只有五个基本的三维空间正多面体,外加几个无关痛痒的星形多面体而已。


那菱形十二面体怎么用3ds MAX画出来呢?以下是我的思路:

 

第一步:盯着图1看三分钟,分析结果如下


分析1:菱形十二面体有两种顶点,AB。其中,A类顶点有6个,每个与4个B顶点相连;B类顶点有8个,每个与3个A顶点相连。



分析2:6个A顶点可以看成两个交错的正三角形(如图);8个B顶点可以看成两个交错的正四面体(为了不造成大家的视觉错乱,我只标出了其中一个)。


 

第二步:在3dsMAX软件中出两个交错的正四面体


 


注意:创建完之后需要调整下坐标系,然后镜像一下就ok。

 

第三步:补上另外两个正三角形(为了图省事,我直接复制并镜像了了一下,于是出现了下图中的模型)



至此,A顶点和B顶点全部归到正确位置,下面开始连线。

 

第四步:连接顶点



这时候,菱形十二面体的形状已经出来了,剩下的就是将它转为多面体。记得连线的时候打开顶点捕捉就行了。

 

第五步:创建可编辑多边形



我用的是可编辑平面的分步画法,直接转化的话有些顶点焊接会出问题,导致模型会有缺陷。


对新手来说,第四步大多会出问题。所以,果对样条线编辑不熟悉的话,在连接顶点时,可以打开顶点捕捉(主工具栏中磁铁旁边一个3的图标,鼠标左键点击即可;右键点击可以选择捕捉点的类型,一般默认为顶点),然后用线条分别绘制上下底面各三个封闭的菱形,转为可编辑多边形,选中其中一个后点参数面板中的附加(Attach),然后依次点击另外五个菱形,使其成为一个整体。如下左图所示。



这时候是没有毛病的,渲染出来也很正常。但下一步连接边的时候问题就出现了。


选择上下相对应的两条边(按ctrl),在参数面板中点击桥接(Bridge)命令,结果如下——



好像有哪里不对劲?中途选择放弃的3ds MAX玩家最苦恼的事出现了,那就是局面分分钟超出自己的掌控。原因何在?


我们不妨先看一下正确的结果——



问题的关键就在于上下两个面的方向,在3ds MAX软件中用参数“法线”(Normal)来调节。简而言之,就是两个面如果都朝上,法线方向就一致;一上一下则相反。


如何判断一个面的发现方向,很简单,渲染一下就知道了。



从图中可以看出,法线相反的面渲染时消失了。就好比一个盒子,从外向内看是看得到面的,但从内向外看就看不到了。



知道了原因之后,我们在将可编辑多边形附加成一个整体之前,可以先渲染一下,确保上下两个面都是朝向内部。如果没有,选中需要改变方向的面,在参数修改器中找到法线命令,点击添加翻转法线即可。


最后,桥接好对应的边,一个菱形十二面体就画好了。



但故事到这里并没有结束。其实,菱形十二面体还有更为简单的画法。


首先,画一个正八面体,设置半径为任意值(如20),沿z轴旋转45°角。



然后,画一个长为50,宽、高均为20的长方体,中心对齐。



最后,布尔运算求交集,一个菱形十二面体就画好了。



当然,这时候的十二面体并非一个真正的菱形十二面体(见下方三视图),我们需要在长轴方向将其压缩一下(压缩比为)。



在正确的坐标轴方向压缩70.71%,即可得到最终结果。



虽然两种方法画出来的菱形十二面体看上去一模一样,但第二种方法有投机取巧之嫌。对两者添加晶格化修改器之后便可见分晓,后者无论是格点还是边都有明显的压缩痕迹,这在后续的编辑中显然是个无法弥补的障碍。



由此可见,踏踏实实走好每一步才是最重要的。捷径固然可以提高表观效率,但有些东西,失去了就是失去了。其实,生活又何尝不是如此呢?



: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存