【问题标题】:Projecting 3D Points to 2D Points将 3D 点投影到 2D 点
【发布时间】:2012-04-04 01:02:54
【问题描述】:

我知道这是一个常见问题,网络上有大量资源,这里有几个问题处理这个领域,但我找不到我真正需要的东西。所以,提前道歉,这里是:

我有一个 3D 点需要转换为 2D 点

我有空:
点位置 (Px,Py,Pz)
相机位置 (Cx,Cy,Cz)
相机方向(我可以控制但我不知道如何表示)

我试图按照维基百科指南进行操作 - http://en.wikipedia.org/wiki/3D_projection#Perspective_projection

我的问题是:
我应该如何表示相机方向?
如何从维基百科指南中计算 Ex、Ey、Ez 的值,即“查看器相对于显示表面的位置”
还有什么我应该知道的吗?

【问题讨论】:

    标签: java 3d projection perspective


    【解决方案1】:

    旧教程很棒,大部分来自 T&L 和着色器之前的日子,甚至在硬件渲染之前。从了解它们开始,即 /technical/math-and-physics/3d-matrix-math-demystified-r695">http://www.gamedev.net/page/resources//technical/math-and-physics /3d-matrix-math-demystified-r695 . 然后继续申请相机:http://www.codeguru.com/cpp/misc/misc/graphics/article.php/c10123/Deriving-Projection-Matrices.htm

    基本上,您平移然后围绕相机旋转整个“宇宙”。所以你有你的意思:你为相机定义一个平移(运动),然后是一个旋转矩阵。您将它们应用于任何“世界内容”,即您的观点。然后您可以“作弊”并简单地将 x 和 y 值除以 z 以投影到 2d 平面,但您应该真的进行正确的视野校正。

    【讨论】:

    【解决方案2】:

    如果您使用 Java bindings 编译 Opencv,您可以使用 [Calib3d 模块](http://docs.opencv.org/java/2.4.4/org/opencv/calib3d/Calib3d.html#projectPoints(org.opencv.core.MatOfPoint3f, org.opencv.core.Mat, org.opencv.core.Mat, org.opencv.core.垫,org.opencv.core.MatOfDouble,org.opencv.core.MatOfPoint2f))

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 2019-06-08
      • 2012-09-03
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多