Cesium JS API
AppearanceArcGisMapServerImageryProviderArcGISTiledElevationTerrainProviderArcTypeAssociativeArrayAxisAxisAlignedBoundingBoxbarycentricCoordinatesBillboardBillboardCollectionBillboardGraphicsBillboardVisualizerbinarySearchbinarySearchComparatorBingMapsGeocoderServiceBingMapsImageryProviderBingMapsStyleBlendEquationBlendFunctionBlendingStateBlendOptionBoundingRectangleBoundingSphereBoxEmitterBoxGeometryBoxGeometryUpdaterBoxGraphicsBoxOutlineGeometrybuildModuleUrlCallbackPropertyCameraCameraEventAggregatorCameraEventTypeCartesian2Cartesian3Cartesian4CartographicCartographicGeocoderServiceCatmullRomSplineCesium3DTileCesium3DTileColorBlendModeCesium3DTileContentCesium3DTileFeatureCesium3DTilePointFeatureCesium3DTilesetCesium3DTilesetGraphicsCesium3DTilesetVisualizerCesium3DTileStyleCesium3DTilesVoxelProviderCesiumTerrainProviderCesiumWidgetCheckerboardMaterialPropertyCircleEmitterCircleGeometryCircleOutlineGeometryClassificationPrimitiveClassificationTypeClippingPlaneClippingPlaneCollectionClockClockRangeClockStepcloneCloudCollectionCloudTypeColorColorBlendModeColorGeometryInstanceAttributeColorMaterialPropertycombineComponentDatatypeCompositeEntityCollectionCompositeMaterialPropertyCompositePositionPropertyCompositePropertyCompressedTextureBufferConditionsExpressionConeEmitterConstantPositionPropertyConstantPropertyConstantSplineContextOptionsCoplanarPolygonGeometryCoplanarPolygonOutlineGeometryCornerTypeCorridorGeometryCorridorGeometryUpdaterCorridorGraphicsCorridorOutlineGeometrycreateElevationBandMaterialcreateElevationBandMaterialBandcreateElevationBandMaterialEntrycreateGuidcreateOsmBuildingscreateTangentSpaceDebugPrimitivecreateWorldImagerycreateWorldTerrainCreditCreditDisplayCubicRealPolynomialCullFaceCullingVolumeCumulusCloudCustomDataSourceCustomHeightmapTerrainProviderCustomShaderCustomShaderModeCustomShaderTranslucencyModeCylinderGeometryCylinderGeometryUpdaterCylinderGraphicsCylinderOutlineGeometryCzmlDataSourceDataSourceDataSourceClockDataSourceCollectionDataSourceDisplayDebugAppearanceDebugCameraPrimitiveDebugModelMatrixPrimitiveDefaultProxydefaultValuedefinedDepthFunctiondestroyObjectDeveloperErrorDirectionalLightDirectionUpDiscardEmptyTileImagePolicyDiscardMissingTileImagePolicyDistanceDisplayConditionDistanceDisplayConditionGeometryInstanceAttributeEasingFunctionEllipseGeometryEllipseGeometryUpdaterEllipseGraphicsEllipseOutlineGeometryEllipsoidEllipsoidGeodesicEllipsoidGeometryEllipsoidGeometryUpdaterEllipsoidGraphicsEllipsoidOutlineGeometryEllipsoidRhumbLineEllipsoidSurfaceAppearanceEllipsoidTangentPlaneEllipsoidTerrainProviderEntityEntityClusterEntityCollectionEntityViewEventEventHelperexcludesReverseAxisexportKmlexportKmlModelCallbackexportKmlResultKmlexportKmlResultKmzExpressionExtrapolationTypeFeatureDetectionFogformatErrorFrameRateMonitorFrustumGeometryFrustumOutlineGeometryFullscreenGeocoderServiceGeocodeTypeGeographicProjectionGeographicTilingSchemeGeoJsonDataSourceGeometryGeometryAttributeGeometryAttributesGeometryFactoryGeometryInstanceGeometryInstanceAttributeGeometryPipelineGeometryUpdaterGeometryVisualizergetAbsoluteUrigetBaseUrigetExtensionFromUriGetFeatureInfoFormatgetFilenameFromUrigetImagePixelsgetTimestampGlobeGlobeTranslucencyGoogleEarthEnterpriseImageryProviderGoogleEarthEnterpriseMapsProviderGoogleEarthEnterpriseMetadataGoogleEarthEnterpriseTerrainDataGoogleEarthEnterpriseTerrainProviderGpxDataSourceGregorianDateGridImageryProviderGridMaterialPropertyGroundGeometryUpdaterGroundPolylineGeometryGroundPolylinePrimitiveGroundPrimitiveHeadingPitchRangeHeadingPitchRollHeadingPitchRollValuesHeightmapEncodingHeightmapTerrainDataHeightReferenceHermitePolynomialApproximationHermiteSplineHilbertOrderHorizontalOriginI3SDataProviderI3SFeatureI3SFieldI3SGeometryI3SLayerI3SNodeImageBasedLightingImageMaterialPropertyImageryLayerImageryLayerCollectionImageryLayerFeatureInfoImageryProviderImageryTypesincludesReverseAxisIndexDatatypeIntersectIntersections2DIntersectionTestsIntervalIonIonGeocoderServiceIonImageryProviderIonResourceIonWorldImageryStyleisLeapYearIso8601JulianDateKeyboardEventModifierKmlCameraKmlDataSourceKmlFeatureDataKmlLookAtKmlTourKmlTourFlyToKmlTourWaitLabelLabelCollectionLabelGraphicsLabelStyleLabelVisualizerLagrangePolynomialApproximationLeapSecondLightLightingModelLinearApproximationLinearSplineMapboxImageryProviderMapboxStyleImageryProviderMapMode2DMapProjectionMaterialMaterialAppearanceMaterialSupportMaterialPropertyMathMatrix2Matrix3Matrix4mergeSortmergeSortComparatorMetadataClassMetadataClassPropertyMetadataComponentTypeMetadataEnumMetadataEnumValueMetadataSchemaMetadataTypeModelModelAnimationModelAnimationCollectionModelAnimationLoopModelFeatureModelGraphicsModelNodeModelVisualizerMoonMorphWeightSplineNearFarScalarNeverTileDiscardPolicyNodeTransformationPropertyobjectToQueryOccluderOpenCageGeocoderServiceOpenStreetMapImageryProviderOrientedBoundingBoxOrthographicFrustumOrthographicOffCenterFrustumPackableForInterpolationParticleParticleBurstParticleEmitterParticleSystemPathGraphicsPathVisualizerPeliasGeocoderServicePerInstanceColorAppearancePerspectiveFrustumPerspectiveOffCenterFrustumPinBuilderPixelDatatypePixelFormatPlanePlaneGeometryPlaneGeometryUpdaterPlaneGraphicsPlaneOutlineGeometryPointCloudShadingPointGraphicspointInsideTrianglePointPrimitivePointPrimitiveCollectionPointVisualizerPolygonGeometryPolygonGeometryUpdaterPolygonGraphicsPolygonHierarchyPolygonOutlineGeometryPolylinePolylineArrowMaterialPropertyPolylineCollectionPolylineColorAppearancePolylineDashMaterialPropertyPolylineGeometryPolylineGeometryUpdaterPolylineGlowMaterialPropertyPolylineGraphicsPolylineMaterialAppearancePolylineOutlineMaterialPropertyPolylineVisualizerPolylineVolumeGeometryPolylineVolumeGeometryUpdaterPolylineVolumeGraphicsPolylineVolumeOutlineGeometryPositionPropertyPositionPropertyArrayPostProcessStagePostProcessStageCollectionPostProcessStageCompositePostProcessStageLibraryPostProcessStageSampleModePrimitivePrimitiveCollectionPrimitiveTypePropertyPropertyArrayPropertyBagProxyQuadraticRealPolynomialQuantizedMeshTerrainDataQuarticRealPolynomialQuaternionQuaternionSplinequeryToObjectQueueRayreadyPromiseRectangleRectangleGeometryRectangleGeometryUpdaterRectangleGraphicsRectangleOutlineGeometryReferenceFrameReferencePropertyremoveExtensionRequestRequestErrorEventRequestSchedulerRequestStateRequestTypeResourceRuntimeErrorSampledPositionPropertySampledPropertysampleTerrainsampleTerrainMostDetailedSceneSceneModeSceneTransformsScreenSpaceCameraControllerScreenSpaceEventHandlerScreenSpaceEventTypeshaderDefinesshaderMaximumIntersectionsLengthshaderUniformsShadowMapShadowModeShowGeometryInstanceAttributeSimon1994PlanetaryPositionsSimplePolylineGeometrySingleTileImageryProviderSkyAtmosphereSkyBoxSphereEmitterSphereGeometrySphereOutlineGeometrySphericalSplineSplitDirectionStencilFunctionStencilOperationSteppedSplineStripeMaterialPropertyStripeOrientationStyleExpressionsubdivideArraySunSunLightTaskProcessorTerrainDataTerrainProviderTextureMagnificationFilterTextureMinificationFilterTextureUniformTileAvailabilityTileCoordinatesImageryProviderTileDiscardPolicyTileMapServiceImageryProviderTileProviderErrorTilingSchemeTimeDynamicImageryTimeDynamicPointCloudTimeIntervalTimeIntervalCollectionTimeIntervalCollectionPositionPropertyTimeIntervalCollectionPropertyTimeStandardTransformsTranslationRotationScaleTridiagonalSystemSolverTrustedServersUniformSpecifierUniformTypeUrlTemplateImageryProviderVaryingTypeVelocityOrientationPropertyVelocityVectorPropertyVertexFormatVerticalOriginVideoSynchronizerViewportQuadVisibilityVisualizerVoxelPrimitiveVoxelProviderVoxelShapeTypeVRTheWorldTerrainProviderWallGeometryWallGeometryUpdaterWallGraphicsWallOutlineGeometryWebGLConstantsWebGLOptionsWebMapServiceImageryProviderWebMapTileServiceImageryProviderWebMercatorProjectionWebMercatorTilingSchemeWindingOrderwriteTextToCanvasAnimationAnimationViewModelBaseLayerPickerBaseLayerPickerViewModelCesium3DTilesInspectorCesium3DTilesInspectorViewModelCesiumInspectorCesiumInspectorViewModelClockViewModelCommandcreateCommandFullscreenButtonFullscreenButtonViewModelGeocoderGeocoderViewModelHomeButtonHomeButtonViewModelInfoBoxInfoBoxViewModelNavigationHelpButtonNavigationHelpButtonViewModelPerformanceWatchdogPerformanceWatchdogViewModelProjectionPickerProjectionPickerViewModelProviderViewModelSceneModePickerSceneModePickerViewModelSelectionIndicatorSelectionIndicatorViewModelSvgPathBindingHandlerTimelineToggleButtonViewModelViewerviewerCesium3DTilesInspectorMixinviewerCesiumInspectorMixinviewerDragDropMixinviewerPerformanceWatchdogMixinviewerVoxelInspectorMixinVoxelInspectorVoxelInspectorViewModelVRButtonVRButtonViewModel

Quaternion

Quaternion 表示空间旋转的四元数。它通常表示为四个实数 (w, x, y, z),其中 w 是角度值,x, y, 和 z 是旋转轴周围的剪切变量。

Quaternion 可以与 Cesium 的其他服务一起使用,包括: 模型相机,和CesiumJS基础

用法

// 创建默认四元数(1, 0, 0, 0)
var quaternion = Cesium.Quaternion.IDENTITY;

方法

Cesium.Quaternion.clone(quaternion, result)

参数描述:

参数名 类型 描述
quaternion Quaternion 要克隆的四元数。
result Quaternion 一个存储克隆结果的对象,如果未提供则创建一个新的Quaternion。

描述:返回给定四元数的副本或存储复制品的对象。

var quaternion = Cesium.Quaternion.clone(Cesium.Quaternion.IDENTITY);

Cesium.Quaternion.conjugate(quaternion, result)

参数描述:

参数名 类型 描述
quaternion Quaternion 要求共轭的四元数。
result Quaternion 行为的结果共轭Quaternion,如果没有提供它,则创建一个新的Quaternion。

描述:返回给定四元数的共轭/逆,即反向旋转而不改变旋转轴。

var quaternion = Cesium.Quaternion.conjugate(Cesium.Quaternion.IDENTITY);

Cesium.Quaternion.fromAxisAngle(axis, angle, result)

参数描述:

参数名 类型 描述
axis Cartesian3 旋转轴。
angle Number 旋转轴的角度。
result Quaternion 旋转的四元数,如果没有提供它,则创建一个新的Quaternion。

描述:返回一个四元数,该四元数表示绕轴旋转给定角度的旋转。

// 将正方体绕y轴旋转45度。
var quaternion = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Y, Cesium.Math.toRadians(45));

Cesium.Quaternion.fromEuler(x, y, z, order, result)

参数描述:

参数名 类型 描述
x Number 绕x轴的角度。
y Number 绕y轴的角度。
z Number 绕z轴的角度。
order String 旋转的绕轴顺序。可以是“XYZ”,“YZX”,“ZXY”或“ZYX”。默认是“XYZ”。
result Quaternion 旋转四元数,如果没有提供,则创建一个新的Quaternion。

描述:返回一个四元数,该四元数表示给定欧拉角的旋转。

注:此方法接受三个缩放角度并根据提供的顺序按给定欧拉角调整旋转。

// 将正方体绕x、y、z轴旋转45度。
var quaternion = Cesium.Quaternion.fromEuler(
    Cesium.Math.toRadians(45),
    Cesium.Math.toRadians(45),
    Cesium.Math.toRadians(45),
    'XYZ'
);

Cesium.Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result)

参数描述:

参数名 类型 描述
heading Number yaw值。
pitch Number 参量值。
roll Number 滚动值。
result Quaternion 旋转四元数,如果没有提供,则创建一个新的Quaternion。

描述:返回一个四元数,该四元数表示给定方向的旋转。

// 将正方体绕x、y、z轴旋转45度。
var quaternion = Cesium.Quaternion.fromHeadingPitchRoll(
  Cesium.Math.toRadians(45),
  Cesium.Math.toRadians(45),
  Cesium.Math.toRadians(45)
);

Cesium.Quaternion.fromRotationMatrix(matrix, result)

参数描述:

参数名 类型 描述
matrix Matrix3 旋转矩阵。
result Quaternion 旋转四元数,如果没有提供,则创建一个新的Quaternion。

描述:返回一个四元数,该四元数表示给定旋转矩阵的旋转。

// 将正方体绕x、y、z轴旋转45度, convert it to a Matrix3, then back to a quaternion.
var rotation = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(45));
var quaternion = Cesium.Quaternion.fromRotationMatrix(rotation);

Cesium.Quaternion.magnitude(quaternion)

参数描述:

参数名 类型 描述
quaternion Quaternion 被估量四元数。

描述:返回四元数的长度。

var mag = Cesium.Quaternion.magnitude(Cesium.Quaternion.IDENTITY);

Cesium.Quaternion.magnitudeSquared(quaternion)

参数描述:

参数名 类型 描述
quaternion Quaternion 被估量四元数。

描述:返回四元数的长度的平方/欧几里得距离。

var mag = Cesium.Quaternion.magnitudeSquared(Cesium.Quaternion.IDENTITY);

Cesium.Quaternion.normalize(quaternion, result)

参数描述:

参数名 类型 描述
quaternion Quaternion 要进行归一化的四元数。
result Quaternion 归一化四元数,如果没有提供则创建一个新的Quaternion。

描述:返回归一化四元数,表示与原始四元数相同方向的单位四元数。

var quaternion = Cesium.Quaternion.normalize(Cesium.Quaternion.IDENTITY);

Cesium.Quaternion.multiply(left, right, result)

参数描述:

参数名 类型 描述
left Quaternion 左四元数。
right Quaternion 右四元数。
result Quaternion 乘以四元数,如果没有提供则创建一个新的Quaternion。

描述:返回两个四元数的乘积。

var a = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, Cesium.Math.toRadians(45));
var b = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_X, Cesium.Math.toRadians(90));
var c = Cesium.Quaternion.multiply(a, b);

Cesium.Quaternion.computeAngle(quaternion)

参数描述:

参数名 类型 描述
quaternion Quaternion 要计算角度的四元数。

描述:返回绕旋转轴旋转的角度。

var axis = new Cesium.Cartesian3(0.0, 0.0, 1.0);
var angle = Cesium.Quaternion.computeAngle(Cesium.Quaternion.fromAxisAngle(axis, Cesium.Math.toRadians(45)));

Cesium.Quaternion.log(quaternion, result)

参数描述:

参数名 类型 描述
quaternion Quaternion 要取对数的四元数。
result Cartesian3 该四元数的对数,如果没有提供则创建一个新的Cartesian3。

描述:返回对数四元数。

var qt1 = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, Cesium.Math.toRadians(45));
var qt2 = Cesium.Quaternion.log(qt1);

Cesium.Quaternion.exp(cartesian, result)

参数描述:

参数名 类型 描述
cartesian Cartesian3 要取指数的笛卡尔坐标。
result Quaternion 四元数指数,如果没有提供则创建一个新的Quaternion。

描述:返回实数 $\exp(X)$ 的 Quaternion 格式,其中 $X$ 是提供笛卡尔坐标的 Quaternion。

var qt = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Y, Cesium.Math.toRadians(45));
var ex = new Cesium.Cartesian3(1, 2, 3);
var result = Cesium.Quaternion.exp(ex);

Cesium.Quaternion.slerp(start, end, t, result)

参数描述:

参数名 类型 描述
start Quaternion 起始四元数。
end Quaternion 终止四元数。
t Number 值为0到1的插值度。
result Quaternion 插值四元数,如果未提供则创建一个新的Quaternion。

描述:返回使用球面线性插值计算的两个四元数之间的线性插值组成的四元数。

var qt1 = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, Cesium.Math.toRadians(45));
var qt2 = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_X, Cesium.Math.toRadians(90));
var qt3 = Cesium.Quaternion.slerp(qt1, qt2, 0.5);

Cesium.Quaternion.normalizeCartesian4(cartesian, result)

参数描述:

参数名 类型 描述
cartesian Cartesian4 要规范化的笛卡尔坐标。
result Quaternion 结果规范化四元数,如果未提供则创建一个新的Quaternion。

描述:返回规范化四元数,从给定的四元数中删除缩放部分。

注意:假设提供的四元数中的 'w' 成分是标量缩放和三元素四元素。如果不是,则可能不会得到正确的结果。

var quaternion = Cesium.Quaternion.normalizeCartesian4(new Cesium.Cartesian4(0, 1, 1, 1));

属性

Cesium.Quaternion.IDENTITY

描述:标识四元数,表示没有旋转。

Cesium.Quaternion.ZERO

描述:等于Cartesian4.ZERO四元数。

Cesium.Quaternion.packedInterpolationLength

描述:存储在数组中的单个插值四元数的长度。

Cesium.Quaternion.packedInterpolationSizeInBytes

描述:单个插值四元数在字节中的大小。

Cesium.Quaternion.packedLength

描述:四元数在压缩数组中占用的长度(以32位字表示)。

Cesium.Quaternion.x

描述:X分量。

Cesium.Quaternion.y

描述:Y分量。

Cesium.Quaternion.z

描述:Z分量。

Cesium.Quaternion.w

描述:旋转角度。

示例

参考文献