三维地形。
我有3个顶点来定义一个平面。(高度贴图中最近的3个像素)
我在那架飞机上有个x,z。(我在世界上的位置)
你如何找到y-intercept?(这样我就站在那个平面的表面上)
发布于 2012-09-14 07:36:48
平面的方程式是:
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如果我的代数有误,谁来纠正我。
你可以这样计算叉积:
对于分别具有分量a1、a2、a3和b1、b2、b3的两个矢量a和b,其叉积为:

它将发送到:

A= i-hat的系数(加粗的i)
B= j-hat的系数(加粗的j)
C= k-hat的系数(加粗的k)
发布于 2012-09-16 16:19:19
您说您正在查看高度图中最近的三个像素,这让我假设您有一个规则的网格,您可以从中提取顶点。在这种情况下,您可以使用图像插值方法来执行与eboix或bicubic插值的答案类似的linear。然后,您的高度值等于图像处理域中的亮度值。在线性情况下,数学计算要容易得多,并且网格结构使得使用简单的形式成为可能。设c为像元大小,p,q,r为3个顶点的高度值,如下所示
p q
+--.
| /
|/
rx和y表示直角三角形边的距离。三角形当然是3个顶点在x,y平面上的投影。则插值高度值为
z = (q-p)/c * x + (r-q)/c * yhttps://stackoverflow.com/questions/12416195
复制相似问题