[英]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.