计算几何初步

线段属性
线段

三个问题

1、给定的向量p0p1和p0p2,以p0为公共点,p0p1到p0p2是否构成右手螺旋(逆时针)?

2、给定两条线段p0p1和p1p2,如果我们遍历p0p1和P1P2,能否判断p2在p0p1的左边?

3、线段p0p1和p3p4相交吗?

叉积

定义.  矩阵的行列式:

           

p1Xp2 >0:p1以(0,0)为起点,在p2的顺时针方向

p1Xp2 <0: p1以(0,0)为起点,在p2的逆时针方向

p1Xp2 =0:共线

1判断p0p1到p0p2是否构成右手螺旋

以P0为公共点。 p0(x0,y0),p1(x1,y1),p2(x2,y2) 以p0为公共点 计算叉积  

 (p1-p0)x(p2-p0)=(x1-x0)(y1-y0)-(x2-x0)(y2-y0)    

>0:左手螺旋(顺时针)    

<0:右手螺旋(逆时针)    

=0:共线

2判断一个点在一条线段的左边还是右边(p1点在线段p0p2)

用叉积(p1-p0)x(p2-p0)       >0:右边 P1P2向左转    <0:左边 P1P2向右转    =0:线上 

只要不是左转 :(p1-p0)x(p2-p0) <=0  注意 p1 p2 顺序

3判断两线段是否相交

两线段相交有下面两个情况 如图一两线交叉 如图二一线段的端点在另一条线段上

判断AB和CD两线段是否有交点: 同时满足两个条件:('x'表示叉积)

1.C点D点分别在AB的两侧.(向量(ABxAC)*(ABxAD)<=0)

2.A点和B点分别在CD两侧.(向量(CDxCA)*(CDxCB)<=0)  

3.  向量(ABxAC)*(ABxAD)<0代表在直线两侧, =0代表在直线上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值