求三维空间两直线交点

emmm这个我今天百度了好久,发现都是同一篇,而且很长懒得看。。。于是我自己想了一个

设四个点构成两个线段p1(x1,y1,z1) p2(x2,y2,z2) p3(x3,y3,z3) p4(x4,y4,z4) ,向量a=p2-p1,b=p4-p3;
1.先判断两个线段是否平行
2.再计算d = cross(a,b); //就是同时与两直线垂直的向量
3.根据 p1和d 确定一个平面,计算p3到这个平面的距离,距离为0说明两直线共面
4.共面之后就可以求交点了,我们列出参数方程
pa=ta*p1+(1-ta)*p2;
pb=tb*p1+(1-tb)*p2;
pa=pb;
解方程得出t1或者t2,代入原参数方程就是交点
5. t1和t2如果都在0到1范围内,则两个线段相交

就酱
代码我还没写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值