Mirror镜像操作,同上述两种方法一样,需作用于某个几何体上。镜像操作需要一个辅助的镜像平面,所以镜像的输入有所不同。
镜像平面使用一个坐标系的坐标面来表示,所以镜像函数需要填入两个参数,一是自制临时的镜面坐标系,二是镜面坐标系的坐标平面名称。
镜面坐标系,是通过平移旋转原坐标系而新建产生。输入对原坐标系的平移或旋转操作,而不后接星号不作用于任意模型,就可表示一个任意镜面坐标系(例:trans(300,0,0) * rotz(pi)表示了原坐标系按z轴旋转180°并沿X轴平移300的镜面坐标系,如图)。

经过此操作而得的一个镜面坐标系的任意一个坐标面,都可以作为镜像平面进行镜像操作。默认以镜面坐标系的YOZ平面进行镜像。可以选取镜面坐标系三个坐标面的任意一个,仅需在Mirror函数内以字符串形式输入所需面的名称即可。(例:’XY’)
镜面坐标系仅为辅助用,并不显示在窗口。如需显示,可使用函数show_coordinate_system()。该函数可将置入的坐标系可视化,方便建模及理解。需区分,有字母标识且无箭头的是软件显示界面的全局坐标系,无字母有箭头的为可视化的镜面坐标系。红轴为X,绿轴为Y,蓝轴为Z。坐标系显示尺寸可用scale()更改。

示例:

Model = trans(400,0,0) * scale(500,200,400) * Cube()
MirrorModel = mirror(trans(0,0,0) * rotz(pi/4)) * Model
show_coordinate_system(scale(5) * trans(0,0,0) * rotz(pi/4))

以镜面坐标系XOY平面做镜像示例:

Model = trans(400,0,0) * scale(500,200,400) * Cube()
MirrorModel = mirror(trans(0,0,0) * rotz(-pi/4),'XY') * Model
show_coordinate_system(scale(5) * trans(0,0,0) * rotz(-pi/4))