社区
数据结构与算法
帖子详情
如何判断空间两线段是否相交?
whnchh
2003-04-07 04:16:36
已知空间两条线段的顶点坐标(x1,y1,z1),(x2,y2,z2),如何判断它们是否相交?
...全文
640
5
打赏
收藏
如何判断空间两线段是否相交?
已知空间两条线段的顶点坐标(x1,y1,z1),(x2,y2,z2),如何判断它们是否相交?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alidiedie
2003-04-20
打赏
举报
回复
以前有好多此个问题:
排斥实验 和跨立实验
/* 基本几何结构 */
struct POINT
{
double x;
double y; POINT(double a=0, double b=0) { x=a; y=b;} //constructor
};
struct LINESEG
{
POINT s;
POINT e; LINESEG(POINT a, POINT b) { s=a; e=b;}
LINESEG() { }
};
double multiply(POINT sp,POINT ep,POINT op)
{
return((sp.x-op.x)*(ep.y-op.y)-(ep.x-op.x)*(sp.y-op.y));
}
// 如果线段u和v相交(包括相交在端点处)时,返回true
bool intersect(LINESEG u,LINESEG v)
{
return( (max(u.s.x,u.e.x)>=min(v.s.x,v.e.x))&& //排斥实验
(max(v.s.x,v.e.x)>=min(u.s.x,u.e.x))&&
(max(u.s.y,u.e.y)>=min(v.s.y,v.e.y))&&
(max(v.s.y,v.e.y)>=min(u.s.y,u.e.y))&&
(multiply(v.s,u.e,u.s)*multiply(u.e,v.e,u.s)>=0)&& //跨立实验
(multiply(u.s,v.e,v.s)*multiply(v.e,u.e,v.s)>=0));
}
DNCS
2003-04-20
打赏
举报
回复
有一个比较简单的方法,
建立两条直线方程求解,看解在不在有效范围内即可
liuweiyan
2003-04-08
打赏
举报
回复
都是高手啊,原来自己一直是井底之蛙:(
ZhangYv
2003-04-07
打赏
举报
回复
http://expert.csdn.net/Expert/topic/927/927874.xml?temp=.3757593
寻开心
2003-04-07
打赏
举报
回复
没有时间细想,至少可以这样判断。
两个线段都有自己的方向向量,两个向量差乘,得到公共的垂直
如果垂直向量是零向量,表示两线段平行
否则,使用两个线段的各一个点和这个公共的垂直做点乘,数值相等表示共面,可以继续测试,否则表示不相交了。
如果共面就可以转化成为平面线段来判断了。平面判断的办法就比较成熟了,论坛前面有现成的结论。
煤炭地址问题解析解答详情
答断层要素有1)断层面2)断盘3)断层线4)交面线 断层分类:1根据断层两盘相对位移方向分类有,正断层,逆断层,平移断层 2根据断层走向与两盘岩层走向的关系分类有,走向断层,倾向断层,斜交断层。 13成煤的必要...
48V -5V(10W)DC-DC降压转换器-电路方案
输出上的这种纹波由两个基本成分组成:第一个是电感器输出上存在的纹波与电容器的等效串联电阻(ESR)
相交
的结果: △V OUT =△iL×ESR = K_IND×I_OUT×ESR 第二个贡献是由对电容器充电和放电的电感器的纹波引起的: ...
二维
空间
内,如何
判断
两条线
段
是否
相交
,相离,平行,重合,并求交点
首先,假设有两条线
段
p,q,求这两条线
段
的
空间
关系。...则可以计算出
两线
段
对应向量: p = p2 - p1 q = q2 - q1 两条线
段
的交点处向量(绿色)可以表示为: p1 + t * p = q1 + u * q ...
如何
判断
两个面
相交
,给我Python代码
为了
判断
两个面
是否
相交
,可以使用求交算法。具体代码如下: def face_intersection(face1, face2): for line1 in face1: for line2 in face2: # 如果两条线
段
相交
,则返回 True if do_intersect(line1, line2):...
Olivier Devillers的
空间
三角形
相交
判断
算法
二维
空间
下关于行列式的应用 定义点a=(ax,ay),b=(bx,by),c=(cx,cy)ca⃗=(ax−cx,ay−cy),bc⃗=(bx−cx,by−cy) 定义点a=(a_x,a_y),b=(b_x,b_y),c=(c_x,c_y) \\ \vec{ca}=(a_x-c_x,a_y-c_y),\vec{bc}=(b_x-c_x,b_y-c_...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章