|
判断两曲线交点顺序:
1. 圆和直线(线段)
设:直线lin的起点为p1,终点为p2,圆cir的圆心坐标为pc,圆半径为r.
1.1 当pc位于lin或其延长线上时:
1.1.1 求p1指向p2的向量v1,
1.1.2 求v1的垂直向量v2,
1.1.3 求lin与cir的交点得ip1和ip2(0个或1个交点得情况很简单,不讨论)
1.1.4 则向量v2左侧的是ip1,右侧的是ip2.
1.2 当pc不位于lin或其延长线上时:
1.2.1 过pc做lin或其延长线的垂线并与lin或其延长线交于p3,
1.2.2 求pc指向p3的向量v,
1.2.3 求lin与cir的交点得ip1和ip2(0个或1个交点的情况很简单,不讨论)
1.2.4 则向量v左侧的是ip1,右侧的是ip2
2. 圆(或弧)和圆(或弧)
设:圆cir1的圆心坐标为p1,圆半径为r1,圆cir2的圆心坐标为p2,圆半径为r2.
且设求交函数为cir1->intersectWith(cir2, n, ip1, ip2);
2.1 求由p2指向p1的向量,
2.2 向量左侧的点为ip1,右侧的点为ip2
|
|