笛卡尔坐标
new Cesium.Cartesian3 ( x , y , z ) Cartesian2:跳转
Members:
与Cartesian2类似
Cesium.Cartesian3.packedLength : Number
Cesium.Cartesian3.UNIT_X : Cartesian3
Cesium.Cartesian3.UNIT_Y : Cartesian3
Cesium.Cartesian3.UNIT_Z : Cartesian3
Cesium.Cartesian3.ZERO : Cartesian3
Methods:
Cesium.Cartesian3.abs (cartesian, result) → Cartesian3 计算提供的笛卡尔坐标的绝对值
Cesium.Cartesian3.add (left, right, result) → Cartesian3 计算两个笛卡尔的按分量求和
Cesium.Cartesian3.angleBetween (left, right) → Number 返回所提供的笛卡尔坐标之间的角度(以弧度为单位)
Cesium.Cartesian3.distance (left, right) → Number 计算两点之间的距离
Cesium.Cartesian3.normalize (cartesian, result) → Cartesian3 向量归一化为单位向量
Cesium.Cartesian3.magnitude (cartesian) → Number 计算笛卡尔的大小(长度)
dot
Cesium.Cartesian3.dot (left, right) → Number
从以度为单位的经度和纬度值返回Cartesian3位置
参数:
left:一个 Cartesian3 对象,表示左侧的向量
right:一个 Cartesian3 对象,表示右侧的向量
var vector1 = new Cesium.Cartesian3(2, 3, 4);
var vector2 = new Cesium.Cartesian3(5, 6, 7);
var dotProduct = Cesium.Cartesian3.dot(vector1, vector2);
console.log(dotProduct); // 输出:56
cross
Cesium.Cartesian3.cross (left, right, result) → Cartesian3
计算两个笛卡尔的叉(外)乘积
参数:
left:一个 Cartesian3 对象,表示左侧的向量
right:一个 Cartesian3 对象,表示右侧的向量
result:一个可选的 Cartesian3 对象,用于存储计算结果。如果提供了 result,则会将计算结果存储在该对象中并返回它
var vector1 = new Cesium.Cartesian3(2, 3, 4);
var vector2 = new Cesium.Cartesian3(5, 6, 7);
var result = new Cesium.Cartesian3();
Cesium.Cartesian3.cross(vector1, vector2, result);
console.log(result); // 输出:Cartesian3 {x: -3, y: 6, z: -3}
叉乘(又称为向量积或叉积)和点乘(又称为数量积或点积)是向量运算中的两种不同操作,它们具有不同的性质和应用。
叉乘(Cross ):
- 定义:叉乘是两个向量的二元运算,结果是一个新的向量。对于三维向量,叉乘的结果是一个垂直于原始两个向量的向量。
- 计算方法:叉乘的计算方法为,将两个向量的对应分量进行运算,得到一个新的向量。对于三维向量
(a1, a2, a3)
和(b1, b2, b3)
,它们的叉乘结果为(a2*b3 - a3*b2, a3*b1 - a1*b3, a1*b2 - a2*b1)
。- 性质:叉乘的结果是一个垂直于原始向量的向量,其方向符合右手法则(即大拇指指向第一个向量,食指指向第二个向量,则中指的方向为结果向量的方向)。
- 应用:叉乘常用于计算法线向量、表面法线、旋转轴、判断向量的方向关系等。
点乘(Dot ):
- 定义:点乘是两个向量的二元运算,结果是一个标量值(数量值)。
- 计算方法:点乘的计算方法为,将两个向量的对应分量相乘,然后将乘积相加得到一个标量值。对于三维向量
(a1, a2, a3)
和(b1, b2, b3)
,它们的点乘结果为a1*b1 + a2*b2 + a3*b3
。- 性质:点乘的结果是两个向量之间的相似度或相关性。点乘的结果为正值时,表示两个向量的方向相似;为零时,表示两个向量垂直;为负值时,表示两个向量的方向相反。
- 应用:点乘常用于计算向量的投影、判断向量的夹角、计算向量的长度或模等。
fromArray
Cesium.Cartesian3.fromArray (array, startingIndex , result ) → Cartesian3
从数组中的三个连续元素创建Cartesian3
参数:
array:包含向量元素的数组
startingIndex:可选参数,指定在数组中开始提取元素的索引位置。默认值为 0
result:可选参数,用于存储结果的 Cartesian3 对象。如果提供了 result,则会将提取的元素填充到该对象中并返回它
var array = [1.0, 2.0, 3.0];
var result = new Cesium.Cartesian3();
Cesium.Cartesian3.fromArray(array, 0, result);
console.log(result); // 输出:Cartesian3 {x: 1.0, y: 2.0, z: 3.0}
var v2 = [0.0, 0.0, 1.0, 2.0, 3.0];
var p2 = Cesium.Cartesian3.fromArray(v2, 2);
console.log(p2); // 输出:Cartesian3 {x: 1.0, y: 2.0, z: 3.0}
fromDegrees
Cesium.Cartesian3.fromDegrees (longitude, latitude, height , ellipsoid , result ) → Cartesian3
从以度为单位的经度和纬度值返回Cartesian3位置
参数:
longitude:经度值,以度为单位
latitude:纬度值,以度为单位
height:高度值,以米为单位
ellipsoid:可选参数,表示地球椭球体模型的 Ellipsoid 对象。如果未提供该参数,则使用默认的椭球体模型(WGS84)
result:可选参数,用于存储结果的 Cartesian3 对象。如果提供了 result,则会将转换后的坐标填充到该对象中并返回它
var longitude = -75.0;
var latitude = 40.0;
var height = 1000.0;
var result = new Cesium.Cartesian3();
Cesium.Cartesian3.fromDegrees(longitude, latitude, height, Cesium.Ellipsoid.WGS84, result);
console.log(result); // 输出:Cartesian3 {x: -2195571.28759098, y: -4824430.81997863, z: 3982289.07682484}
经度值为负数表示西经(西经度)。在经度的表示中,正值表示东经(东经度)
multiplyComponents
Cesium.Cartesian3.multiplyComponents (left, right, result) → Cartesian3
计算两个笛卡尔的分量积
参数:
left:左侧的 Cartesian3 对象
right:右侧的 Cartesian3 对象
result:可选参数,用于存储结果的 Cartesian3 对象。如果提供了 result,则会将相乘的结果填充到该对象中并返回它
var left = new Cesium.Cartesian3(2, 3, 4);
var right = new Cesium.Cartesian3(5, 6, 7);
var result = new Cesium.Cartesian3();
Cesium.Cartesian3.multiplyComponents(left, right, result);
console.log(result); // 输出:Cartesian3 {x: 10, y: 18, z: 28}
multiplyByScalar
Cesium.Cartesian3.multiplyByScalar (cartesian, scalar, result) → Cartesian3
将提供的笛卡尔分量乘以提供的标量
也就是每个分量乘以同一个scalar值
negate
Cesium.Cartesian3.negate (cartesian, result) → Cartesian3
取反提供的笛卡尔坐标
var vector = new Cesium.Cartesian3(2, 3, 4);
var result = new Cesium.Cartesian3();
Cesium.Cartesian3.negate(vector, result);
console.log(result); // 输出:Cartesian3 {x: -2, y: -3, z: -4}