求一判断三维空间中两条线段是否相交的函数!!!

olivermzm 2004-10-22 06:58:22
加精
已知构成线段两点的三维坐标值,谢谢啊
...全文
1546 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
conghonglei 2004-10-26
  • 打赏
  • 举报
回复
已知有四个点了,通过其中三个判断出一个平面,求出平面方程,然后验证第四个点是否在平面上。

如果在,而且两条线不是平行的,就相交乐。
conghonglei 2004-10-25
  • 打赏
  • 举报
回复
强啊,以前这些都不用想的,现在都忘了,唉

要继续努力啊。
mathe 2004-10-24
  • 打赏
  • 举报
回复
设两条线段的端点分别为 (x1,y1,z1), (x2,y2,z2) 和 (x3,y3,z3), (x4,y4,z4)
那么第一条线段方程为U(t)
x=x1+(x2-x1)t
y=y1+(y2-y1)t
z=z1+(z2-z1)t
0<=t<=1
同样,第二条线段方程为V(t)
x=x3+(x4-x3)t
y=y3+(y4-y3)t
z=z3+(z4-z3)t
0<=t<=1
我们的问题就成为是否存在t1,t2,使得U(t1)=V(t2)
也就是求t1,t2,使得
x1+(x2-x1)t1=x3+(x4-x3)t2
y1+(y2-y1)t1=y3+(y4-y3)t2
z1+(z2-z1)t1=z3+(z4-z3)t2
可以通过前面两条方程求出t1,t2,然后带入第三条方程进行检验解是否符合。此外还要求0<=t1,t2<=1,否则还是不相交
zzwu 2004-10-24
  • 打赏
  • 举报
回复
那里讨论的,是平面上的直线段的相交问题,而不是讨论空间直线的相交问题.
zzwu 2004-10-23
  • 打赏
  • 举报
回复
p1,q1,r1是直线L1的方向,
p2,q2,r2是直线L2的方向,

一般,通过(x0,y0,z0)、方向为(p,q,r)的直线L,可以用下面的形式参数方程(三个式子)表示:
   x=x0+p1*t
   y=y0+q1*t
   z=z0+r1*t

其中t为参数,但消去t,就可以写成成等价的一个式子:

   (x-x0)/p=(y-y0)/q=(z-z0)/r


所以,前面的直线L1也可以用下面的3式来表示:
   x=x1+p1*t
   y=y1+q1*t
   z=z1+r1*t

不知道看到过没有?
olivermzm 2004-10-23
  • 打赏
  • 举报
回复
zzwu(未名),我还是不很明白,下面这个网址介绍的这种方法,三维情况下应该是怎样的呢
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=183231

谢谢!
jp1984 2004-10-22
  • 打赏
  • 举报
回复
未名果然是数学牛人
佩服的全体投第
olivermzm 2004-10-22
  • 打赏
  • 举报
回复
zzwu(未名):q1,q2,r1,r2是什么啊,谢谢
zzwu 2004-10-22
  • 打赏
  • 举报
回复
/
/
* P1(x1,y1)
/
/
/|
/ |d
-----------/--+-------*----------- L2
/ P2(x2,y2)
/
L1

上图中,用参数方程来表示直线,则

直线L1方程,可以写为 (x-x1)/p1=(y-y1)/q1=(z-z1)/r1
直线L2方程,可以写为 (x-x2)/p2=(y-y2)/q2=(z-z2)/r2

直线L1,L2相交,则行列式

|x2-x1 y2-y1 z2-z1|
| p1 q1 r1 | = 0
| p2 q2 r2 |

gnefuil 2004-10-22
  • 打赏
  • 举报
回复
列两个直线的方程,然后解方程
无解的话则肯定不相交
有解的话看解是不是在两个线段上
zzwu 2004-10-22
  • 打赏
  • 举报
回复
判断两条线段的最短距离是否=0,如果<>0,则一定不相交,
如果=0,则作为无穷直线一定相交,但还要判别一下交点不在2线段中.
有可能交点不同时在2线段中,或同时不在2线段中.
路人陈 2004-10-22
  • 打赏
  • 举报
回复
原来写过,很久了,忘了,高等数学上能找到公式,实现起来很简单

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧