首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于空间线段求交点的有关问题

2012-09-28 
关于空间线段求交点的问题。准备采用解直线方程:xx0+p1*t ;yy0+q1*t;zz0+r1*t的方式啦解,但是发现每次计

关于空间线段求交点的问题。
准备采用解直线方程:x=x0+p1*t ;y=y0+q1*t;z=z0+r1*t的方式啦解,但是发现每次计算都需要判断方向向量是否为0,所以会有很多if分支,感觉很复杂,有没有什么简单一点的方法? 


[解决办法]
两个线段方程分别为
x = x1 + p1 * t
y = y1 + q1 * t
z = z1 + r1 * t
t∈[a1,b1]

x = x2 + p2 * t
y = y2 + q2 * t
z = z2 + r2 * t
t∈[a2,b2]

先求解x1 + p1 * t = x2 + p2 * t中的t,这一步需要判断p1和p2是否相等,避免除数为0
如果无解,则返回false
如果有一个解,只能说明两个线段所在的直线可能有相交;
如果有无穷多个解,那么用y1 + q1 * t = y2 + q2 * t求解t;
如果还是无穷多个解,那么用z1 + r1 * t = z2 + r2 * t求解t;

接下来需要判断:

1> 求出的t是否同时满足∈[a1,b1]和∈[a2,b2]
2> 求出的t是否同时满足y1 + q1 * t = y2 + q2 * t, z1 + r1 * t = z2 + r2 * t

都满足,返回true,只要前面有一步不满足,返回false
[解决办法]

探讨

这个必须有矩阵解法的
相交必定同平面
两线同平面有解析方程的
另考虑两线平行的情况即可
同平面只有两种情况:相交与平行

再说了 即使用你说的解
也就3阶线性方程而已
即使高斯消去法 求解都很快很简单
学过高等代数的
怎么还会想到两两联立求解线性方程呢?

热点排行