Newell的计算凹面多边形平面方程的方法 - 改进?

时间:2009-08-31 16:56:47

标签: math graphics

定义一个平面需要3个点。如果在凹角附近选择3个点,则已知Newell的方法失败 - 结果平面的法线将指向与预期角度相反的方向。

Newell的方法是否有任何改进有助于选择有效的起点?或者是否存在没有此问题的替代算法?

2 个答案:

答案 0 :(得分:1)

由于你对飞机的唯一兴趣是某个点是否比它更“深”或“更接近”,我想你会期望飞机的法线指向视点(或远离它,取决于你的惯例)。因此,只需计算从视点到三个点之一的法线和矢量的点积,并查看其符号;如果你通常期望负面(或反之亦然),那么它是正面的,然后反转正常。

答案 1 :(得分:0)

在Newell的Plane算法的一些谷歌搜索后看到了这个。我也对使用这个算法感兴趣,但是我对各种文献的阅读让我觉得这是“三点”方法在凹角情况下失败,而Newell的方法将正常工作。以下是相关段落:

  

这种技术,首先由Newell提出(Sutherland et al。,1974),   适用于包含共线顶点的凹多边形和多边形,   以及非平面多边形,例如由多边形产生的多边形   扰动的顶点位置......

     
     对于平面多边形,Newell的方法似乎效率低,因为它   使用多边形的所有顶点,实际上只有三个   定义平面需要点。但应该指出的是   对于任意平面多边形,必须非常选择这三个点   小心:

     
      
  1. 当且仅当它们不是时,三个点唯一地定义一个平面   共线;和

  2.   
  3. 如果在“凹”角附近选择三个点,则为正常   得到的平面将指向与其相反的方向   预期的一个。

  4.         

    检查属性会降低效率   三点方法以及使其编码相当不优雅。一个   好的策略可能是使用多点的三点法   已知是平面的并且严格凸起(没有共线   顶点,)并使用Newell的方法。

来源: Filippo Tampieri。 “纽厄尔计算多边形平面方程的方法”。在Graphics Gems III,Academic Press,1992,pp.231-232。