[英]How to find y at given point (x,z) on 3D triangle?
在y为上/下,z为前/后,x为左/右的坐标系中(与Unity3D相同)。
(这是我意思的不好描述)
ÿ
|
| _ __ _x
\\
ž
(我想z会进入/离开您的显示器)
给定坐标(x,z)保证在这个三角形上,我将如何获得y? 假设您知道所有三个三角形点的(x,y,z)坐标以及人脸的法线。 三角形可以在任何轴上倾斜。
好吧,给定三角形内的任何向量v
以及法线n
,我们知道n
和v
的点积等于0(对于三角形上的所有点均为true)。 所以:
nx * vx + ny * vy + nz * vz = 0
解决vy
小代数,我们有:
vy = -((nz * vz) + (nx * vx)) / ny
一件事。 v
必须在三角形的平面内,因此您需要通过从v
减去一个顶点(例如t1
),将矢量放入三角形的平面内。
所以:
vx = t1x - x, vz = t1z - z, and vy = t1y - y
因此,最终的y坐标为: y = t1y - vy
其中vy
在上面定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.