明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3239|回复: 4

如何判断一个点在多义线的左侧

[复制链接]
发表于 2007-9-4 18:37:00 | 显示全部楼层 |阅读模式
请给个思路
发表于 2007-9-13 22:22:00 | 显示全部楼层

Point3d p1 : 需要测试的点

Polyline pline : 需要测试的多义线

1,Point3d p2 = pline.GetClosetPointTo(p1,false);

2,Vector3d vec1 = p1-p2;

3,Vector3d vec2 = pline.GetFirstDeriative(p2);

4,Vector3d vec3 = vec1.DotProduct(vec2);

5, if vec3.X < 0 then left else Right

OK?

发表于 2008-7-3 15:00:00 | 显示全部楼层

//判断点与有向线段的关系

怎么判断坐标为(xp,yp)的点P是在直线的哪一侧呢?设直线是由其上两点(x1,y1)
(x2,y2)确定的,直线方向是由(x1,y1)到(x2,y2)的方向。这时若直线方程记为
Ax+By+C=0 则有: A=y2-y1; B=x1-x2; C=x2*y1-x1*y2;   这时可以计算D:
D=A*xp+B*yp+C   若D<0,则点(xp,yp)在直线的左侧;若D>0,则点在直线的右侧;
D=0点在直线上。

发表于 2008-9-1 19:16:00 | 显示全部楼层

比较斜率

发表于 2008-9-20 13:00:00 | 显示全部楼层
R=atan((YB-YA)/(XB-XA),R就是AB的方位角,D=(XA-XC)*sin(R)+(YC-YA)*cos(R),D&lt;0时C点在AB直线的左边。E=(XC-XA)*cos(R)+(YC-YA)*sin(R),E等于C点在AB上的投影到A点的距离。这是一个坐标换算方法,测量人员都会用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 14:55 , Processed in 0.185457 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表