在y为上/下的坐标系中,z为前/后,x为左/右(如Unity3D中所示)。
(这是我的意思的糟糕图纸)
ÿ
|
|的 _ __ _x
\
ž
(我想,z会进入/离开你的显示器)
给定保证在这个三角形上的坐标(x,z),我怎么得到y?假设您知道所有三个三角形点的(x,y,z)坐标,以及面部的法线。三角形可以在任何轴上倾斜。
答案 0 :(得分:4)
好吧,如果你的三角形里面有任何Vector v
,而你的正常n
,我们知道n
和v
的点积等于0(对于所有三角形上的点)。所以:
nx * vx + ny * vy + nz * vz = 0
要解决vy
的小代数,我们有:
vy = -((nz * vz) + (nx * vx)) / ny
但有一件事。 v
必须位于三角形的平面中,因此您需要将该矢量放在三角形平面中,方法是从t1
中减去一个顶点(比如v
)。
所以:
vx = t1x - x, vz = t1z - z, and vy = t1y - y
因此,您的最终y坐标为:y = t1y - vy
,其中vy
定义如上。