转跳到内容

每 日 算 法 挑 战 【第0期,有红包】


只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

目的:获得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。

 

,由mylifeyouwill修改
注释
Mr.K 018 Mr.K 018 5.00节操 糖~
链接到点评
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款