project a vertex along its normal onto a triangle

本文详细解析了如何通过计算3D点在指定平面上的投影,判断其是否位于三角形内部的方法。利用barycentric坐标系,通过比较三角形面积及其投影,实现了精确的点在面内的判定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参照文献
https://math.stackexchange.com/questions/544946/determine-if-projection-of-3d-point-onto-plane-is-within-a-triangle
https://pdfs.semanticscholar.org/0141/b1416bb749bb5ba94210a30d70f0824760a4.pdf

这里不同的是, 这里的法向量不是三角形的法向量, 而是给定点上的法向量.

在这里插入图片描述

先说他这里的求法,
P ′ P' P的barycentric coordinates的求法
b [ 0 ] = A Δ P ′ C B / A Δ A B C b[0] = A_{\Delta P'CB} / A_{\Delta ABC} b[0]=AΔPCB/AΔABC
b [ 1 ] = A Δ A P ′ C / A Δ A B C b[1] = A_{\Delta AP'C} / A_{\Delta ABC} b[1]=AΔAPC/AΔABC
b [ 2 ] = A Δ A B P ′ / A Δ A B C b[2] = A_{\Delta ABP'} / A_{\Delta ABC} b[2]=AΔABP/AΔABC

然后 A Δ P ′ C B , A Δ A P ′ C , A Δ A B P ′ A_{\Delta P'CB},A_{\Delta AP'C},A_{\Delta ABP'} AΔPCB,AΔAPC,AΔABP的求法是算 A Δ P C B , A Δ A P C , A Δ A B P A_{\Delta PCB},A_{\Delta APC},A_{\Delta ABP} AΔPCB,AΔAPC,AΔABP的投影, 就是他们的面积乘以他们的法向量与 Δ A B C \Delta ABC ΔABC法向量的cosine

如果P’是P沿P的法向量 n ⃗ \vec n n Δ A B C \Delta ABC ΔABC所在平面的交点, 那么就是我们这里的问题

求法类似,
b [ 0 ] = p r o j ( A Δ P C B ) / p r o j ( A Δ A B C ) b[0] = proj(A_{\Delta PCB}) / proj(A_{\Delta ABC}) b[0]=proj(AΔPCB)/proj(AΔABC)
b [ 1 ] = p r o j ( A Δ A P C ) / p r o j ( A Δ A B C ) b[1] = proj(A_{\Delta APC}) / proj(A_{\Delta ABC}) b[1]=proj(AΔAPC)/proj(AΔABC)
b [ 2 ] = p r o j ( A Δ A B P ) / p r o j ( A Δ A B C ) b[2] = proj(A_{\Delta ABP}) / proj(A_{\Delta ABC}) b[2]=proj(AΔABP)/proj(AΔABC)
其中 proj是三角形在垂直于 n ⃗ \vec n n 平面上的投影

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值