cesium 模型局部坐标系
时间: 2023-08-02 10:08:29 浏览: 174
Cesium中的模型局部坐标系是指模型自身的坐标系,也称为模型空间。在Cesium中,模型局部坐标系的原点默认位于模型的中心点,x、y、z轴方向也都是相对于模型自身的。当模型被加载到Cesium场景中时,它的局部坐标系会被转换为世界坐标系,也就是场景中的坐标系。这个转换过程需要考虑到模型的位置、旋转和缩放等变换。Cesium提供了一系列API来帮助开发者操作模型的局部坐标系,例如Model.getMatrix()可以获取模型的变换矩阵,Model.getTranslation()可以获取模型的平移向量等。
相关问题
cesium 构建模型局部坐标系
在Cesium中,构建模型的局部坐标系需要先创建一个模型实例,然后设置模型的位置、旋转和缩放等变换属性。下面是一个简单的示例代码:
```javascript
// 创建一个BoxGeometry模型
var boxGeometry = new Cesium.BoxGeometry({
vertexFormat : Cesium.VertexFormat.POSITION_ONLY
});
// 创建一个模型实例
var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 0.0));
var boxInstance = new Cesium.GeometryInstance({
geometry : boxGeometry,
modelMatrix : modelMatrix
});
// 创建一个模型
var model = new Cesium.Model({
instances : [boxInstance],
allowPicking : false
});
// 设置模型的变换属性
model.modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(
new Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 0.0),
new Cesium.HeadingPitchRoll(0.0, 0.0, 0.0));
// 添加模型到场景中
viewer.scene.primitives.add(model);
```
在上面的代码中,我们首先创建了一个BoxGeometry模型,然后使用该模型创建一个GeometryInstance实例,并设置该实例的模型变换矩阵(即模型在场景中的位置、旋转和缩放等属性)。接着,我们创建了一个Model实例,并将GeometryInstance实例添加到该模型中。最后,我们设置了模型的变换属性,将模型的局部坐标系转换为场景中的坐标系,并将模型添加到场景中。
cesium 构建模型局部坐标系 原点(0,0,0)
要在Cesium中构建一个模型的局部坐标系,可以通过在3D建模软件(例如Blender或3ds Max)中将模型的原点设置为局部坐标系的原点(0,0,0),然后将该模型导入到Cesium中。在Cesium中,模型的位置和旋转可以通过设置Cesium.Entity的position和orientation属性来控制,这些属性将使用世界坐标系和四元数表示,但是模型的局部坐标系原点将保持不变。如果要在模型上创建其他坐标系,可以添加Cesium.Transforms.localFrameToFixedFrame函数创建的Cesium.Entity,该函数将模型的局部坐标系转换为固定世界坐标系。
阅读全文