目的:获得STL文件的所需方块
难点:三角面的相互包围的内部方块难以计算
首先获得边界信息:
1. MC的方块顶点意味着都是整数构成1x1x1的立体方块。
2. 三角面穿过方块才计算该方块,意味着没有接触或者三角面在方块中心,不构成方块。
以边界信息为前置条件,开始设计函数(只写思路了,具体写代码可能要麻烦死...):
1. 创建一个大小为(Xmax - Xmin, Ymax - Ymin, Zmax - Zmin)大小的全0雕塑数组,每个点表示为1x1x1的方块的Xmin,Ymin,Zmin坐标。
2. 设计一个输入两个点(也就是一条线段)、一个数组,根据边界条件将数组内所有满足的方块值置为1的函数(也就是设计了一条线段穿过方块,方块值就置1的函数)。
3. 遍历所有STL文件的所有三角面,每个三角面都是从一个选中线段开始,然后根据等比三角形,朝着未被选中线段包含的点平行移动线段两端点,直到填充所有的三角形面,将所有雕塑数组中的三角面的值全都置为1。
4. 遍历雕塑数组中Zmax到Zmin的所有XY面,设计函数将XY内所有数值为1的闭合矩形平面内 所有0点置为1。
5. 累计第4步中所有1的数值,求和即为n。