OpenSCAD代码仅绘制单个三角形,第二个无法显示的bug排查求助
问题分析与解决
你的问题出在第二个三角形的顶点顺序上。OpenSCAD的polyhedron默认会剔除背面(法线朝向内部的面),当你给的三个点是顺时针排列时,面会被判定为背面而不显示。
看你的triangle_table里第二个三角形的索引是9,8,1,对应的三个顶点是:
- vertices[9]:
[80, 0, 40] - vertices[8]:
[0, 0, 40] - vertices[1]:
[80, 40, 0]
这三个点的排列是顺时针方向,导致面被背面剔除,所以看不到。
解决方法
方法1:调整顶点顺序
把triangle_table里的第二个三角形索引改成逆时针顺序,比如将[9,8,1]改为[9,1,8]:
triangle_table = [1, 8, 3, 9, 1, 8];
方法2:关闭背面剔除
修改triangle模块,给polyhedron添加backface_cull=false参数,强制显示所有面:
module triangle(p1, p2, p3, triangle_color) { color(triangle_color) polyhedron(points=[p1, p2, p3], faces=[[0, 1, 2]], backface_cull=false); }
两种方法任选其一,都能让第二个三角形正常显示。
内容的提问来源于stack exchange,提问作者Megidd
相关产品推荐
相关产品推荐

