簡體   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