只需一步,快速开始
使用道具 举报
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?
//判断点与有向线段的关系
怎么判断坐标为(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点在直线上。
比较斜率
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-24 07:39 , Processed in 0.159609 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.