cesium.js绘制抛物线
时间: 2023-09-10 21:14:23 浏览: 115
以下是使用cesium.js绘制抛物线的示例代码:
```
var viewer = new Cesium.Viewer('cesiumContainer');
var position = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 1000.0);
var velocity = Cesium.Cartesian3.fromElements(1000.0, 0.0, 0.0);
var acceleration = Cesium.Cartesian3.fromElements(0.0, 0.0, -9.8);
var entity = viewer.entities.add({
name : 'Parabolic Trajectory',
position : position,
point : {
pixelSize : 10,
color : Cesium.Color.YELLOW
}
});
var time = 0.0;
var timeStep = 0.01;
var maxTime = 20.0;
var positionArray = [];
while (time < maxTime) {
var deltaPosition = Cesium.Cartesian3.multiplyByScalar(velocity, timeStep, new Cesium.Cartesian3());
var deltaVelocity = Cesium.Cartesian3.multiplyByScalar(acceleration, timeStep, new Cesium.Cartesian3());
position = Cesium.Cartesian3.add(position, deltaPosition, new Cesium.Cartesian3());
velocity = Cesium.Cartesian3.add(velocity, deltaVelocity, new Cesium.Cartesian3());
entity.position = position;
positionArray.push(position.x, position.y, position.z);
time += timeStep;
}
viewer.entities.add({
polyline : {
positions : Cesium.Cartesian3.fromDegreesArrayHeights(positionArray),
width : 5,
material : new Cesium.PolylineGlowMaterialProperty({
glowPower : 0.3,
color : Cesium.Color.YELLOW
})
}
});
viewer.zoomTo(viewer.entities);
```
此代码将在Cesium Viewer中绘制一个抛物线,代表一个物体在重力作用下的运动。代码使用了Cesium中的实体(Entity)和折线(Polyline)来实现绘制。在代码中,我们定义了物体的起始位置、速度和加速度,并通过循环计算物体在每个时间步长中的位置和速度。我们还将每个时间步长中的位置存储在一个数组中,以便后面用于绘制折线。最后,我们将绘制的折线添加到Cesium Viewer中,并将视图缩放到实体和折线的范围以便查看。
阅读全文