Intersections2D是一个用于在二维平面上进行几何操作的CesiumJS库。
computeSegmentSegmentIntersection(p0, p1, q0, q1)该函数用于计算两条线段之间的交点。参数p0和p1分别代表第一条线段的两个端点,参数q0和q1分别代表第二条线段的两个端点。函数调用成功返回包含交点坐标的对象,否则返回undefined。
computeCircleLineIntersection(center, radius, p1, p2)该函数用于计算圆和线段之间的交点。参数center代表圆心坐标,radius代表圆半径,p1和p2分别代表线段的两个端点。函数调用成功返回包含交点坐标的对象,否则返回undefined。
computeCircleCircleIntersection(c1, r1, c2, r2)该函数用于计算两个圆之间的交点。参数c1和r1分别代表第一个圆的圆心和半径,c2和r2分别代表第二个圆的圆心和半径。函数调用成功返回包含交点坐标的对象,否则返回undefined。
computePolygonCircleIntersection(polygon, center, radius)该函数用于计算一个多边形和一个圆之间的交点。参数polygon代表多边形的顶点列表,center代表圆心坐标,radius代表圆半径。函数调用成功返回一个包含交点坐标的数组,否则返回undefined。
以下为一个计算两条线段交点的示例:
var Cartesian2 = Cesium.Cartesian2;
var Intersections2D = Cesium.Intersections2D;
var p0 = new Cartesian2(0.0, 0.0);
var p1 = new Cartesian2(1.0, 1.0);
var q0 = new Cartesian2(0.0, 1.0);
var q1 = new Cartesian2(1.0, 0.0);
var intersection = Intersections2D.computeSegmentSegmentIntersection(p0, p1, q0, q1);
if (intersection) {
// 打印交点坐标
console.log(intersection.x, intersection.y);
} else {
// 两条线段没有交点
console.log("no intersection");
}
更多示例参见CesiumJS官方文档。