计算几何 - 将2D点投影到平面上以确定其3D位置

时间:2012-04-02 06:41:23

标签: computational-geometry

以下是我想弄清楚的事情。

问题 - 解释如何将2D点投影到平面上以创建3D点。

我想知道如何解决这个问题。我查看了一本计算几何书,并查找了与我想要弄清楚的内容有关的任何内容。没有给出关于计算几何问题的信息。事情是我对计算几何学一无所知<所以搞清楚这一点是我所不知道的。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望将2D平面上的点投影到具有不同方向的平面上。我还假设您正在寻找正交投影(即,xy平面的所有点都将投影到目标平面上的最近点)。

所以我们有两个平面的方程和我们想要投射的点:

原始2D平面:z = 0,法线向量n1 =(0,0,1)

目标平面:ax + by + cz + d = 0,法线向量n2 =(a,b,c)

点P :( e,f,0)显然位于xy平面

现在,我们想要从目标平面法线方向的P点开始(因为这将给出目标平面上最近的点)。因此,我们形成一个从P点开始的线的方程,它与目标平面的法向量平行。

线L:(x,y,z)=(e,f,0)+ t(a,b,c)=(e + ta,f + tb,tc),其中t是实值参数

接下来,我们想在线L上找到一个也位于目标平面上的点。因此,我们将线方程插入目标平面的方程式并接收:

a(e + ta)+ b(f + tb)+ c * tc + d = 0

ae + bf + d + t(a 2 + b 2 + c 2 )= 0

t = - (ae + bf + d)/(a 2 + b 2 + c 2

因此预计的点将是:

P 投影 =(e + ka,f + kb,kc),其中k = - (ae + bf + d)/(a 2 + b 2 + c 2


解决方案中的所有变量,如果您是该区域的新手,可能会有点难以理解。但实际上,这很简单。你必须学习的东西是:

  • 平面的标准公式:ax + by + cz + d = 0
  • 如何从平面方程中提取法向量
  • 法线向量是什么(垂直于平面中所有位置向量的向量)
  • 一条线的参数化表示:(x,y,z)= u + t * v *,其中 u 是位于线上的点,t是实值参数, v 是与线平行的矢量。
  • 理解点和平面之间的最近路径将平行于平面的法线

如果你掌握了上述概念,计算投影很简单:

计算目标平面的法向量。从您想要投影的点开始,平行于计算的法向量,直到到达平面。