0

3d 地形。

我有 3 个顶点定义一个平面。(高度图中最近的 3 个像素)

我在那架飞机上有一个 x,z。(我在世界上的位置)

你如何找到 y 截距?(这样我就站在那架飞机的表面上)

4

2 回答 2

2

平面方程为:

A x + B y + C z = D,其中 D = A x0 + B y0 + C z0,

如果您有三个顶点,请从顶点中找到两个向量。例如,对于三个顶点 T、U、V,将有一个向量TU和一个向量UV

求两个向量的叉积。那是您的法线向量n,它具有三个分量 n1、n2 和 n3。

A = n1
B = n2
C = n3

取其中一分。该点的坐标是 x0、y0 和 z0。

将其输入方程以计算 D。

然后用你的 x 和 z 代替 x 和 z 并求解 y!

所以最后 y 是:

y = (A*x0 + B*y0 + C*z0 - A*x - C*z)/B

如果我的代数错了,请有人纠正我。

您可以像这样计算叉积:

对于两个向量ab,分量分别为 a1、a2、a3 和 b1、b2、b3,叉积为:

在此处输入图像描述

去:

在此处输入图像描述

A = i-hat 的系数(加粗的 i)

B = j-hat 的系数(粗体 j)

C = k-hat 的系数(加粗的 k)

于 2012-09-13T23:36:47.787 回答
0

您说您正在查看高度图中最近的三个像素,这让我假设您有一个规则网格,您可以从中提取顶点。在这种情况下,您可以使用图像插值方法来执行类似于 eboix 或双三次插值的答案的线性。然后,您的高度值等于图像处理域中的亮度值。在线性情况下,数学要容易得多,而网格结构使得使用简单的形式成为可能。让 c 为您的像元大小,而 p、q、r 为您的 3 个顶点的高度值,如下所示

p    q
 +--.
 | /
 |/
r

和 x 和 y 沿直角三角形的腿的距离。三角形当然是您的 3 个顶点在 x、y 平面上的投影。然后你的插值高度值是

z = (q-p)/c * x + (r-q)/c * y
于 2012-09-16T08:19:18.667 回答