定义一个平面需要3个点。如果在凹角附近选择3个点,则已知Newell的方法失败 - 结果平面的法线将指向与预期角度相反的方向。
Newell的方法是否有任何改进有助于选择有效的起点?或者是否存在没有此问题的替代算法?
答案 0 :(得分:1)
由于你对飞机的唯一兴趣是某个点是否比它更“深”或“更接近”,我想你会期望飞机的法线指向视点(或远离它,取决于你的惯例)。因此,只需计算从视点到三个点之一的法线和矢量的点积,并查看其符号;如果你通常期望负面(或反之亦然),那么它是正面的,然后反转正常。
答案 1 :(得分:0)
在Newell的Plane算法的一些谷歌搜索后看到了这个。我也对使用这个算法感兴趣,但是我对各种文献的阅读让我觉得这是“三点”方法在凹角情况下失败,而Newell的方法将正常工作。以下是相关段落:
这种技术,首先由Newell提出(Sutherland et al。,1974), 适用于包含共线顶点的凹多边形和多边形, 以及非平面多边形,例如由多边形产生的多边形 扰动的顶点位置......
对于平面多边形,Newell的方法似乎效率低,因为它 使用多边形的所有顶点,实际上只有三个 定义平面需要点。但应该指出的是 对于任意平面多边形,必须非常选择这三个点 小心:
当且仅当它们不是时,三个点唯一地定义一个平面 共线;和
- 醇>
如果在“凹”角附近选择三个点,则为正常 得到的平面将指向与其相反的方向 预期的一个。
检查属性会降低效率 三点方法以及使其编码相当不优雅。一个 好的策略可能是使用多点的三点法 已知是平面的并且严格凸起(没有共线 顶点,)并使用Newell的方法。
来源: Filippo Tampieri。 “纽厄尔计算多边形平面方程的方法”。在Graphics Gems III,Academic Press,1992,pp.231-232。