在3D空间中任意变换的等边三角形的法线

时间:2010-01-17 04:31:02

标签: math 3d geometry computer-vision normals

我有一个问题,我似乎无法找到一个起点;我甚至不确定我是否能够很好地描述它以获得答案。

我需要在三维空间中找到等边三角形的法线,而不事先知道三角形的点。考虑从任何角度拍摄三角形“屈服”路牌的照片,并从该照片中确定标志的朝外正常。 (我不是那样做的,但是相似 - 所以我将使用这里的标志/照片比喻)。

**更新**:在我问我的版本前一天出现了同样的问题,您可以查看here。感谢BlueRaja指点我。我认为那里的讨论会回答这个问题。然而,下面介绍了一种非常有趣的计算方法。

我知道在代码中创建三角形时如何找到三角形的法线,但我不确定如何将点映射到3D中照片中的三角形。我知道每一边的长度,所以我知道这些点在任何方向上应该有多远。我可以构建一个交互式工具,我可以覆盖三角形并将其旋转到位置并从中获取点,但我需要在没有交互的情况下执行此操作。这样做也无法帮助我弄清楚所涉及的数学。

我甚至不确定我是否需要确定点,就像找到正确的旋转矩阵一样。

我只是无法弄清楚从哪里开始......搜索这个概念是空的,或者不是我想要做的事情(例如:它们是2D变换而不是3D)

我也有可能过度复杂化,并且有一个简单的变换方程可以在睡眠中完成。

思考?提前谢谢!

2 个答案:

答案 0 :(得分:0)

我昨天感觉像I just answered this

答案 1 :(得分:0)

这可以通过数学或计算方式解决(除了内置的四重模糊)。由于这是SO,我将描述一种计算方法。

总的来说,方法是查看投影角度,因为您知道真实角度,您可以计算方向。具体来说,从下面的可视化开始:想象三角形在x-y平面上是平的,沿着z轴是正常的,并且在这里放置一个接触三角形所有角落的球体,一切都以原点为中心。现在将法线旋转到球体的所有点并记下投影角度。这里的关键点是,现在对于每个可能的投影角度,您可以在球体上绘制一个等角度路径(即法线的路径,指示您观察到相同投影角度的所有位置 - 这可能是一个圆圈,但我不确定没有计算出数学)。因此,为了解决原始问题,取两个观察角度,绘制等角度路径,可能的解决方案将是这些路径的交叉点。

计算上,通过在球体上移动法线,例如1度增量来构建等角度路径,并记下每个位置的三个角度,然后通过对其进行排序,将此数据重新排列为等角度路径角度。然后,对于观察投影中的两个角度,找到两个等角度路径相交的位置。请注意,路径将具有两个交叉点,这些交叉点对应于特定角落是否接近或远离观察者的内置模糊度,并且还取决于您选择如何处理法线的反射,我将被断开的路径(虽然除了反射之外,我认为等角度路径不会断开连接。)