4

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

我需要在不事先知道三角形点的情况下在 3D 空间中找到等边三角形的法线。考虑从任何角度拍摄三角形“屈服”街道标志的照片,并从该照片中确定标志的朝外法线。(我没有这样做,确切地说,但类似 ​​- 所以我将从这里使用标志/照片隐喻)。

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

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

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

我只是不知道从哪里开始......搜索这个概念是空的,或者不是我想要做的(例如:它们是 2D 转换而不是 3D)

也有可能我把事情过于复杂了,并且有一个简单的变换方程可以在它的睡眠中做到这一点。

想法?提前致谢!

4

2 回答 2

0

我觉得我昨天才回答这个问题。

于 2010-01-17T04:38:48.083 回答
0

这可以通过数学或计算来解决(除了内置的四重歧义)。既然如此,我将描述一种计算方法。

总而言之,该方法是查看投影角度,并且由于您知道真实角度,因此您可以计算方向。具体来说,从下面的可视化开始:想象三角形在 xy 平面上是平的,它沿 z 轴是法线的,并在此处放置一个接触三角形所有角的球体,所有内容都以原点为中心。现在旋转球体所有点的法线并注意投影角度。这里的关键点是,现在对于每个可能的投影角度,您可以在球体上绘制等角路径(即表示您观察到相同投影角度的所有位置的法线路径 - 这可能是一个圆,但如果不进行数学计算,我不确定)。所以要解决原来的问题,取两个观察角,画出等角路径,

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

于 2010-01-18T17:58:21.517 回答