繁体   English   中英

如何在3D三角形的给定点(x,z)上找到y?

[英]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 ,我们知道nv的点积等于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM