基于python与CUDA的N卡GPU并行程序——直线和三角形的交点

  设直线过点m,直线向量为VL,设三角形平面过点n,平面法向量为VP,两者的交点为O。
直线方程为
{ m x + V L x ⋅ t = x m y + V L y ⋅ t = y m z + V L z ⋅ t = z \left\{\begin{aligned}\\ m_x+VL_x\cdot t=x\\ m_y+VL_y\cdot t=y\\ m_z+VL_z\cdot t=z \end{aligned}\right. mx+VLxt=xmy+VLyt=ymz+VLzt=z
平面方程为
V P x ⋅ ( x − n x ) + V P y ⋅ ( y − n y ) + V P z ⋅ ( z − n z ) = 0 VP_x\cdot(x-n_x)+VP_y\cdot(y-n_y)+VP_z\cdot(z-n_z)=0 VPx(xnx)+VPy(yny)+VPz(znz)=0
联立两式有
t = ( ( n x − m x ) ⋅ V P x + ( n y − m y ) ⋅ V P y + ( n z − m z ) ⋅ V P z ) / ( V P x ⋅ V L x + V P y ⋅ V L y + V P z ⋅ V L z ) t=((n_x-m_x)\cdot VP_x+(n_y-m_y)\cdot VP_y+(n_z-m_z)\cdot VP_z)/\\ (VP_x\cdot VL_x+VP_y\cdot VL_y+VP_z\cdot VL_z) t=((nxmx)VPx+(nymy)VPy+(nzmz)VPz)/(VPxVLx+VPyVLy+VPzVLz)
若上式分母等于零,则直线和平面平行。
上式求解过程可以写成向量形式
t = ( m n ⃗ ⋅ V P ⃗ ) / ( V L ⃗ ⋅ V P ⃗ ) t=(\vec{mn}\cdot\vec{VP})/(\vec{VL}\cdot\vec{VP}) t=(mn VP )/(VL VP )
对于三角形平面,有三个顶点A,B,C,可以设平面过点A,平面的法向量为两个向量的叉乘
V P ⃗ = A B ⃗ × A C ⃗ \vec{VP}=\vec{AB}\times\vec{AC} VP =AB ×AC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值