【问题标题】:Normal of an equilateral triangle that has been arbitrarily transformed in 3D space在 3D 空间中任意变换的等边三角形的法线
【发布时间】:2011-01-06 00:02:23
【问题描述】:

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

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

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

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

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

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

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

想法?提前致谢!

【问题讨论】:

  • 准备好从您的计算中得到 2 个结果;一个用于投影平面“前面”的三角形,一个用于“后面”。
  • 确实,我也习惯于处理二维线法线。不过谢谢你的提醒。
  • 您是否尝试过搜索计算机视觉资源?这似乎是他们经常解决的问题。 SO 上还有一个可能合适的计算机视觉标签。
  • @celion:好点 - 添加了 CV 标签。谢谢。在问这里之前,我已经搜索了很多资源;很难搜索我不确定我正在寻找的东西:-)

标签: math 3d geometry computer-vision normals


【解决方案1】:

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

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

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

【讨论】:

  • 整洁!这就是我的想法,我可以理解这一点。这在我的脑海中提出了一条新的、不同的路径(不是双关语),我将在纸上进行尝试,看看它是如何工作的。谢谢!稍后会更新。
【解决方案2】:

我感觉就像昨天I just answered this

【讨论】:

  • 不,答案是针对三个已知点。这里的点是完全未知的。您所要做的就是在平面上进行透视投影。
  • 阅读 cmets - 我告诉你如何在 3d 中找到点,知道它们在 2d 中是什么(即知道它们之间的距离)
  • 谢谢!该帖子没有出现在搜索中(我可能使用了不同的术语)。这听起来肯定与我的问题相似,并且有几种途径可以探索。关于你在那篇文章中的 cmets,你能扩展你在那里说的话,以便我能更好地掌握完整的概念吗? (具体来说,如何解决 9 个方程/未知数,仅基于您提供的方程)
  • @gw:Ian Boyd 编辑了他的回复(在我链接到的帖子中);我相信它是正确的并且写得很好,我现在请你参考他的回答。
  • 哇——彻底。感谢您指出了这一点。上周我参加了客户会议,所以我没有时间查看所有内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-23
  • 2017-06-30
相关资源
最近更新 更多