Plane
是一个二维平面,由三个点定义。在 Cesium.js 中,它被用来表示一个操纵对象的平面。
使用 Cesium 提供的 Plane
构造器来创建一个平面:
var plane = new Cesium.Plane(new Cesium.Cartesian3(x, y, z), new Cesium.Cartesian3(x, y, z), new Cesium.Cartesian3(x, y, z));
其中,x
、y
、z
分别代表三个点的坐标。
Plane.normal
一个 Cartesian3
对象,代表平面的法向量。
var normal = plane.normal; // 获取平面的法向量
Plane.distance
一个数字,代表平面距离原点的实际距离。
var distance = plane.distance; // 获取平面距离原点的距离
Plane.getPointDistance(point)
计算平面上某一点到该面的距离。
var distance = plane.getPointDistance(new Cesium.Cartesian3(x, y, z)); // 计算点到平面的距离
其中,(x, y, z)
代表该点的坐标。
Plane.projectPointOntoPlane(point, result)
计算平面上某一点在该面的投影点。
var point = new Cesium.Cartesian3(x1, y1, z1);
var result = new Cesium.Cartesian3();
plane.projectPointOntoPlane(point, result); // 计算点的投影点
其中,(x1, y1, z1)
代表需要投影的点的坐标。
var point1 = new Cesium.Cartesian3(-100, -100, 0);
var point2 = new Cesium.Cartesian3(-100, 100, 0);
var point3 = new Cesium.Cartesian3(100, 100, 0);
var plane = new Cesium.Plane(point1, point2, point3);
var normal = plane.normal;
var distance = plane.distance;
var point = new Cesium.Cartesian3(50, 50, 0);
var distanceToPlane = plane.getPointDistance(point);
var result = new Cesium.Cartesian3();
plane.projectPointOntoPlane(point, result);