【发布时间】:2018-06-14 01:50:08
【问题描述】:
如果一个多面体的所有节点(可能是非凸的)和它们的坐标是已知的,一个面的点是按顺序给出的(逆时针或顺时针围绕外法线),我如何获得外法线每张脸的向量?
这里是凸多面体的一种方法: Computing face normals and winding
一个非凸的一般多面体怎么样?
【问题讨论】:
-
没有任何研究,我猜最难的部分是计算一张人脸的向量,而不是计算一张人脸的法线向量!?
-
@meowgoesthedog:很好的发现,但根据我的经验,计算射线交叉点(如建议的那样)是一个相当棘手的计算。
-
@JosephO'Rourke 是的,但前提是您打算使用加速结构。一种天真的“循环并检查每个”方法或多或少是微不足道的(因为互联网上有许多 Moller-Trumbore 的代码示例)
-
@meowgoesthedog:当光线穿过顶点、与边共线、与面共面时,必须小心。等等当然可以正确完成。并且有现有的代码,你是对的。
标签: c++ geometry computational-geometry polyhedra