# Cartesian3

#### new Cesium.Cartesian3(x, y, z)
Core/Cartesian3.js 20

A 3D Cartesian point.

Name | Type | Default | Description
--- | --- | --- | ---
`x` | Number | `0.0` | optional The X component.
`y` | Number | `0.0` | optional The Y component.
`z` | Number | `0.0` | optional The Z component.

##### See:

- Cartesian2
- Cartesian4
- Packable

### Members

#### x : Number
Core/Cartesian3.js 26

The X component.

Default Value: `0.0`

#### y : Number
Core/Cartesian3.js 33

The Y component.

Default Value: `0.0`

#### z : Number
Core/Cartesian3.js 40

The Z component.

Default Value: `0.0`

#### static Cesium.Cartesian3.packedLength : Number
Core/Cartesian3.js 125

The number of elements used to pack the object into an array.

#### static constant Cesium.Cartesian3.UNIT_X : Cartesian3
Core/Cartesian3.js 1023

An immutable Cartesian3 instance initialized to (1.0, 0.0, 0.0).

#### static constant Cesium.Cartesian3.UNIT_Y : Cartesian3
Core/Cartesian3.js 1031

An immutable Cartesian3 instance initialized to (0.0, 1.0, 0.0).

#### static constant Cesium.Cartesian3.UNIT_Z : Cartesian3
Core/Cartesian3.js 1039

An immutable Cartesian3 instance initialized to (0.0, 0.0, 1.0).

#### static constant Cesium.Cartesian3.ZERO : Cartesian3
Core/Cartesian3.js 1015

An immutable Cartesian3 instance initialized to (0.0, 0.0, 0.0).

### Methods

#### clone(result) → Cartesian3
Core/Cartesian3.js 1047

Duplicates this Cartesian3 instance.

Name | Type | Description
--- | --- | ---
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

#### equals(right) → Boolean
Core/Cartesian3.js 1058

Compares this Cartesian against the provided Cartesian componentwise and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`right` | Cartesian3 | optional The right hand side Cartesian.

##### Returns:

`true` if they are equal, `false` otherwise.

#### equalsEpsilon(right, relativeEpsilon, absoluteEpsilon) → Boolean
Core/Cartesian3.js 1072

Compares this Cartesian against the provided Cartesian componentwise and returns `true` if they pass an absolute or relative tolerance test, `false` otherwise.

Name | Type | Default | Description
--- | --- | --- | ---
`right` | Cartesian3 |  | optional The right hand side Cartesian.
`relativeEpsilon` | Number | `0` | optional The relative epsilon tolerance to use for equality testing.
`absoluteEpsilon` | Number | `relativeEpsilon` | optional The absolute epsilon tolerance to use for equality testing.

##### Returns:

`true` if they are within the provided epsilon, `false` otherwise.

#### toString() → String
Core/Cartesian3.js 1081

Creates a string representing this Cartesian in the format '(x, y, z)'.

##### Returns:

A string representing this Cartesian in the format '(x, y, z)'.

#### static Cesium.Cartesian3.abs(cartesian, result) → Cartesian3
Core/Cartesian3.js 595

Computes the absolute value of the provided Cartesian.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian whose absolute value is to be computed.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.add(left, right, result) → Cartesian3
Core/Cartesian3.js 490

Computes the componentwise sum of two Cartesians.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.angleBetween(left, right) → Number
Core/Cartesian3.js 639

Returns the angle, in radians, between the provided Cartesians.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.

##### Returns:

The angle between the Cartesians.

#### static Cesium.Cartesian3.clone(cartesian, result) → Cartesian3
Core/Cartesian3.js 96

Duplicates a Cartesian3 instance.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian to duplicate.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided. (Returns undefined if cartesian is undefined)

#### static Cesium.Cartesian3.cross(left, right, result) → Cartesian3
Core/Cartesian3.js 751

Computes the cross (outer) product of two Cartesians.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The cross product.

#### static Cesium.Cartesian3.distance(left, right) → Number
Core/Cartesian3.js 363

Computes the distance between two points.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first point to compute the distance from.
`right` | Cartesian3 | The second point to compute the distance to.

##### Returns:

The distance between two points.

##### Example:

    // Returns 1.0
    var d = Cesium.Cartesian3.distance(new Cesium.Cartesian3(1.0, 0.0, 0.0), new Cesium.Cartesian3(2.0, 0.0, 0.0));

#### static Cesium.Cartesian3.distanceSquared(left, right) → Number
Core/Cartesian3.js 385

Computes the squared distance between two points. Comparing squared distances using this function is more efficient than comparing distances using `Cartesian3#distance`.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first point to compute the distance from.
`right` | Cartesian3 | The second point to compute the distance to.

##### Returns:

The distance between two points.

##### Example:

    // Returns 4.0, not 2.0
    var d = Cesium.Cartesian3.distanceSquared(new Cesium.Cartesian3(1.0, 0.0, 0.0), new Cesium.Cartesian3(3.0, 0.0, 0.0));

#### static Cesium.Cartesian3.divideByScalar(cartesian, scalar, result) → Cartesian3
Core/Cartesian3.js 555

Divides the provided Cartesian componentwise by the provided scalar.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian to be divided.
`scalar` | Number | The scalar to divide by.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.divideComponents(left, right, result) → Cartesian3
Core/Cartesian3.js 469

Computes the componentwise quotient of two Cartesians.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.dot(left, right) → Number
Core/Cartesian3.js 430

Computes the dot (scalar) product of two Cartesians.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.

##### Returns:

The dot product.

#### static Cesium.Cartesian3.equals(left, right) → Boolean
Core/Cartesian3.js 710

Compares the provided Cartesians componentwise and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | optional The first Cartesian.
`right` | Cartesian3 | optional The second Cartesian.

##### Returns:

`true` if left and right are equal, `false` otherwise.

#### static Cesium.Cartesian3.equalsEpsilon(left, right, relativeEpsilon, absoluteEpsilon) → Boolean
Core/Cartesian3.js 732

Compares the provided Cartesians componentwise and returns `true` if they pass an absolute or relative tolerance test, `false` otherwise.

Name | Type | Default | Description
--- | --- | --- | ---
`left` | Cartesian3 |  | optional The first Cartesian.
`right` | Cartesian3 |  | optional The second Cartesian.
`relativeEpsilon` | Number | `0` | optional The relative epsilon tolerance to use for equality testing.
`absoluteEpsilon` | Number | `relativeEpsilon` | optional The absolute epsilon tolerance to use for equality testing.

##### Returns:

`true` if left and right are within the provided epsilon, `false` otherwise.

#### static Cesium.Cartesian3.fromArray(array, startingIndex, result) → Cartesian3
Core/Cartesian3.js 251

Creates a Cartesian3 from three consecutive elements in an array.

Name | Type | Default | Description
--- | --- | --- | ---
`array` | Array.<Number> |  | The array whose three consecutive elements correspond to the x, y, and z components, respectively.
`startingIndex` | Number | `0` | optional The offset into the array of the first element, which corresponds to the x component.
`result` | Cartesian3 |  | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

##### Example:

    // Create a Cartesian3 with (1.0, 2.0, 3.0)
    var v = [1.0, 2.0, 3.0];
    var p = Cesium.Cartesian3.fromArray(v);

    // Create a Cartesian3 with (1.0, 2.0, 3.0) using an offset into an array
    var v2 = [0.0, 0.0, 1.0, 2.0, 3.0];
    var p2 = Cesium.Cartesian3.fromArray(v2, 2);

#### static Cesium.Cartesian3.fromCartesian4(cartesian, result) → Cartesian3
Core/Cartesian3.js 119

Creates a Cartesian3 instance from an existing Cartesian4. This simply takes the x, y, and z properties of the Cartesian4 and drops w.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian4 | The Cartesian4 instance to create a Cartesian3 instance from.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

#### static Cesium.Cartesian3.fromDegrees(longitude, latitude, height, ellipsoid, result) → Cartesian3
Core/Cartesian3.js 809

Returns a Cartesian3 position from longitude and latitude values given in degrees.

Name | Type | Default | Description
--- | --- | --- | ---
`longitude` | Number |  | The longitude, in degrees
`latitude` | Number |  | The latitude, in degrees
`height` | Number | `0.0` | optional The height, in meters, above the ellipsoid.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the position lies.
`result` | Cartesian3 |  | optional The object onto which to store the result.

##### Returns:

The position

##### Example:

    var position = Cesium.Cartesian3.fromDegrees(-115.0, 37.0);

#### static Cesium.Cartesian3.fromDegreesArray(coordinates, ellipsoid, result) → Array.<Cartesian3>
Core/Cartesian3.js 874

Returns an array of Cartesian3 positions given an array of longitude and latitude values given in degrees.

Name | Type | Default | Description
--- | --- | --- | ---
`coordinates` | Array.<Number> |  | A list of longitude and latitude values. Values alternate [longitude, latitude, longitude, latitude...].
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the coordinates lie.
`result` | Array.<Cartesian3> |  | optional An array of Cartesian3 objects to store the result.

##### Returns:

The array of positions.

##### Example:

    var positions = Cesium.Cartesian3.fromDegreesArray([-115.0, 37.0, -107.0, 33.0]);

#### static Cesium.Cartesian3.fromDegreesArrayHeights(coordinates, ellipsoid, result) → Array.<Cartesian3>
Core/Cartesian3.js 946

Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in degrees.

Name | Type | Default | Description
--- | --- | --- | ---
`coordinates` | Array.<Number> |  | A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the position lies.
`result` | Array.<Cartesian3> |  | optional An array of Cartesian3 objects to store the result.

##### Returns:

The array of positions.

##### Example:

    var positions = Cesium.Cartesian3.fromDegreesArrayHeights([-115.0, 37.0, 100000.0, -107.0, 33.0, 150000.0]);

#### static Cesium.Cartesian3.fromElements(x, y, z, result) → Cartesian3
Core/Cartesian3.js 78

Creates a Cartesian3 instance from x, y and z coordinates.

Name | Type | Description
--- | --- | ---
`x` | Number | The x coordinate.
`y` | Number | The y coordinate.
`z` | Number | The z coordinate.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

#### static Cesium.Cartesian3.fromRadians(longitude, latitude, height, ellipsoid, result) → Cartesian3
Core/Cartesian3.js 837

Returns a Cartesian3 position from longitude and latitude values given in radians.

Name | Type | Default | Description
--- | --- | --- | ---
`longitude` | Number |  | The longitude, in radians
`latitude` | Number |  | The latitude, in radians
`height` | Number | `0.0` | optional The height, in meters, above the ellipsoid.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the position lies.
`result` | Cartesian3 |  | optional The object onto which to store the result.

##### Returns:

The position

##### Example:

    var position = Cesium.Cartesian3.fromRadians(-2.007, 0.645);

#### static Cesium.Cartesian3.fromRadiansArray(coordinates, ellipsoid, result) → Array.<Cartesian3>
Core/Cartesian3.js 910

Returns an array of Cartesian3 positions given an array of longitude and latitude values given in radians.

Name | Type | Default | Description
--- | --- | --- | ---
`coordinates` | Array.<Number> |  | A list of longitude and latitude values. Values alternate [longitude, latitude, longitude, latitude...].
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the coordinates lie.
`result` | Array.<Cartesian3> |  | optional An array of Cartesian3 objects to store the result.

##### Returns:

The array of positions.

##### Example:

    var positions = Cesium.Cartesian3.fromRadiansArray([-2.007, 0.645, -1.867, .575]);

#### static Cesium.Cartesian3.fromRadiansArrayHeights(coordinates, ellipsoid, result) → Array.<Cartesian3>
Core/Cartesian3.js 983

Returns an array of Cartesian3 positions given an array of longitude, latitude and height values where longitude and latitude are given in radians.

Name | Type | Default | Description
--- | --- | --- | ---
`coordinates` | Array.<Number> |  | A list of longitude, latitude and height values. Values alternate [longitude, latitude, height, longitude, latitude, height...].
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid on which the position lies.
`result` | Array.<Cartesian3> |  | optional An array of Cartesian3 objects to store the result.

##### Returns:

The array of positions.

##### Example:

    var positions = Cesium.Cartesian3.fromRadiansArrayHeights([-2.007, 0.645, 100000.0, -1.867, .575, 150000.0]);

#### static Cesium.Cartesian3.fromSpherical(spherical, result) → Cartesian3
Core/Cartesian3.js 50

Converts the provided Spherical into Cartesian3 coordinates.

Name | Type | Description
--- | --- | ---
`spherical` | Spherical | The Spherical to be converted to Cartesian3.
`result` | Cartesian3 | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

#### static Cesium.Cartesian3.lerp(start, end, t, result) → Cartesian3
Core/Cartesian3.js 617

Computes the linear interpolation or extrapolation at t using the provided cartesians.

Name | Type | Description
--- | --- | ---
`start` | Cartesian3 | The value corresponding to t at 0.0.
`end` | Cartesian3 | The value corresponding to t at 1.0.
`t` | Number | The point along t at which to interpolate.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.magnitude(cartesian) → Number
Core/Cartesian3.js 346

Computes the Cartesian's magnitude (length).
对magnitudeSquared计算的结果进行开根号计算

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian instance whose magnitude is to be computed.

##### Returns:

The magnitude.

#### static Cesium.Cartesian3.magnitudeSquared(cartesian) → Number
Core/Cartesian3.js 331

Computes the provided Cartesian's squared magnitude. 计算X、Y、Z的平方和并返回

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian instance whose squared magnitude is to be computed.

##### Returns:

The squared magnitude.

#### static Cesium.Cartesian3.maximumByComponent(first, second, result) → Cartesian3
Core/Cartesian3.js 311

Compares two Cartesians and computes a Cartesian which contains the maximum components of the supplied Cartesians.

Name | Type | Description
--- | --- | ---
`first` | Cartesian3 | A cartesian to compare.
`second` | Cartesian3 | A cartesian to compare.
`result` | Cartesian3 | The object into which to store the result.

##### Returns:

A cartesian with the maximum components.

#### static Cesium.Cartesian3.maximumComponent(cartesian) → Number
Core/Cartesian3.js 259

Computes the value of the maximum component for the supplied Cartesian.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The cartesian to use.

##### Returns:

The value of the maximum component.

#### static Cesium.Cartesian3.midpoint(left, right, result) → Cartesian3
Core/Cartesian3.js 782

Computes the midpoint between the right and left Cartesian.

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The midpoint.

#### static Cesium.Cartesian3.minimumByComponent(first, second, result) → Cartesian3
Core/Cartesian3.js 289

Compares two Cartesians and computes a Cartesian which contains the minimum components of the supplied Cartesians.

Name | Type | Description
--- | --- | ---
`first` | Cartesian3 | A cartesian to compare.
`second` | Cartesian3 | A cartesian to compare.
`result` | Cartesian3 | The object into which to store the result.

##### Returns:

A cartesian with the minimum components.

#### static Cesium.Cartesian3.minimumComponent(cartesian) → Number
Core/Cartesian3.js 273

Computes the value of the minimum component for the supplied Cartesian.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The cartesian to use.

##### Returns:

The value of the minimum component.

#### static Cesium.Cartesian3.mostOrthogonalAxis(cartesian, result) → Cartesian3
Core/Cartesian3.js 660

Returns the axis that is most orthogonal to the provided Cartesian.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian on which to find the most orthogonal axis.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The most orthogonal axis.

#### static Cesium.Cartesian3.multiplyByScalar(cartesian, scalar, result) → Cartesian3
Core/Cartesian3.js 534

Multiplies the provided Cartesian componentwise by the provided scalar. 根据比例放大向量

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian to be scaled.
`scalar` | Number | The scalar to multiply with.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.multiplyComponents(left, right, result) → Cartesian3
Core/Cartesian3.js 448

Computes the componentwise product of two Cartesians. 计算向量left在right上的投影

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.negate(cartesian, result) → Cartesian3
Core/Cartesian3.js 576

Negates the provided Cartesian. 取反一个笛卡尔坐标点

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian to be negated.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.normalize(cartesian, result) → Cartesian3
Core/Cartesian3.js 402

Computes the normalized form of the supplied Cartesian.

Name | Type | Description
--- | --- | ---
`cartesian` | Cartesian3 | The Cartesian to be normalized.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.pack(value, array, startingIndex) → Array.<Number>
Core/Cartesian3.js 136

Stores the provided instance into the provided array.

Name | Type | Default | Description
--- | --- | --- | ---
`value` | Cartesian3 |  | The value to pack.
`array` | Array.<Number> |  | The array to pack into.
`startingIndex` | Number | `0` | optional The index into the array at which to start packing the elements.

##### Returns:

The array that was packed into

#### static Cesium.Cartesian3.packArray(array, result) → Array.<Number>
Core/Cartesian3.js 182

Flattens an array of Cartesian3s into an array of components.

Name | Type | Description
--- | --- | ---
`array` | Array.<Cartesian3> | The array of cartesians to pack.
`result` | Array.<Number> | optional The array onto which to store the result. If this is a typed array, it must have array.length * 3 components, else a `DeveloperError` will be thrown. If it is a regular array, it will be resized to have (array.length * 3) elements.

##### Returns:

The packed array.

#### static Cesium.Cartesian3.projectVector(a, b, result) → Cartesian3
Core/Cartesian3.js 691

Projects vector a onto vector b

Name | Type | Description
--- | --- | ---
`a` | Cartesian3 | The vector that needs projecting
`b` | Cartesian3 | The vector to project onto
`result` | Cartesian3 | The result cartesian

##### Returns:

The modified result parameter

#### static Cesium.Cartesian3.subtract(left, right, result) → Cartesian3
Core/Cartesian3.js 512

Computes the componentwise difference of two Cartesians. 两个坐标点相得到一个向量

Name | Type | Description
--- | --- | ---
`left` | Cartesian3 | The first Cartesian.
`right` | Cartesian3 | The second Cartesian.
`result` | Cartesian3 | The object onto which to store the result.

##### Returns:

The modified result parameter.

#### static Cesium.Cartesian3.unpack(array, startingIndex, result) → Cartesian3
Core/Cartesian3.js 159

Retrieves an instance from a packed array.

Name | Type | Default | Description
--- | --- | --- | ---
`array` | Array.<Number> |  | The packed array.
`startingIndex` | Number | `0` | optional The starting index of the element to be unpacked.
`result` | Cartesian3 |  | optional The object into which to store the result.

##### Returns:

The modified result parameter or a new Cartesian3 instance if one was not provided.

#### static Cesium.Cartesian3.unpackArray(array, result) → Array.<Cartesian3>
Core/Cartesian3.js 210

Unpacks an array of cartesian components into an array of Cartesian3s.

Name | Type | Description
--- | --- | ---
`array` | Array.<Number> | The array of components to unpack.
`result` | Array.<Cartesian3> | optional The array onto which to store the result.

##### Returns:

The unpacked array.