如何将平面上的 2D 点转换为 3D 点?

问题描述 投票:0回答:1

我在平面上有一些 3D 点。该平面由法线和常数定义。我需要处理 2D 中的点,然后将它们转换回 3D。为了将点转换为 2D,我创建了一个四元数来将平面旋转到 xy 平面,我可以用它来变换点(只需丢弃 z 坐标)。修改 2D 中的点后,我想将它们转换回 3D。我注意到,同一个四元数,如果反转,会将点旋转回来,但我也需要以某种方式平移它,涉及平面常数,但我不知道该怎么做。谢谢!

3d geometry quaternions
1个回答
0
投票

我假设你的平面以 Hessian 范式给出,即点

x
位于平面上 iff:

dot(n, x) - c = 0

单位正常

n

当您应用旋转将平行于 xy 平面的平面与这些点对齐时,它们的 z 分量将等于

c
。因此,要从 2D 转换回 3D,您只需添加
c
的 z 分量并应用反向旋转。确保上述定义适用于您的情况。有时,使用
dot(n, x) + c = 0
形式,这会产生
-c
的 z 分量。

请注意,此过程在功能上是合适的,但计算量很大。另一种方法是在平面上定义 3D 基础,并使用该基础在 3D 和 2D 之间进行转换。您可以在此答案中找到示例。

© www.soinside.com 2019 - 2024. All rights reserved.