切片软件(解决必有重谢)
for triangle in mesh_data.vectors:above = np.any(triangle[:, 2] > z)
below = np.any(triangle[:, 2] < z + layer_height)
if above and below:
indices = np.where((triangle[:, 2] > z) != (triangle[:, 2] < z + layer_height))
if len(indices) >= 2:
tri_vertices = triangle[:, :2]
tri_vertices = (tri_vertices * scale_factor).astype(int)# 使用缩放因子而不是固定的100
# 绘制轮廓
cv2.drawContours(canvas, , -1, 255, thickness=cv2.FILLED)
# 保存缩略图
slices.append(canvas)
这是一个切片软件。
如果是above和below都是True的,那这一部分(triangle[:, 2] > z) != (triangle[:, 2] < z + layer_height)是不是矛盾了呢? 这一部分并不矛盾。在这段代码中,above和below分别表示三角形是否在z和z+layer_height之上或之下。如果above和below都是True,则说明三角形跨越了z和z+layer_height之间的平面。因此,(triangle[:, 2] > z) != (triangle[:, 2] < z + layer_height)的结果将是一个布尔数组,其中True表示三角形的一个点在z和z+layer_height之间,而False表示三角形的所有点都在z和z+layer_height之上或之下。通过使用np.where函数并选择布尔数组中的True值,可以获得三角形中跨越z和z+layer_height之间的边界线段的索引。 isdkz 发表于 2023-9-22 18:09
这一部分并不矛盾。在这段代码中,above和below分别表示三角形是否在z和z+layer_height之上或之下。如果abo ...
但是如果if执行的话,不是就已经说明这个点在z和z+layer_height之间吗 为什么还有FALSE的情况出现
页:
[1]