Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require(['Cesium'], function(Cesium) {
- "use strict";
- var viewer = new Cesium.Viewer('cesiumContainer');
- var scene = viewer.scene;
- var primitives = scene.getPrimitives();
- var ellipsoid = viewer.centralBody.getEllipsoid();
- // start and end points on the surface of the earth
- var startPoint = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-90, 40, 0.0));
- var endPoint = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-80, 40, 0.0));
- var midpointCartesian = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-85, 45, 0.0));
- // create a hermite spline that goes through these three points
- var hermiteSpline = new Cesium.HermiteSpline({
- times : [ 0.0, 0.5, 1.0 ],
- points : [
- startPoint,
- midpointCartesian,
- endPoint
- ]
- });
- // create a 20 point polyline that follows the spline
- var polylinePoints = [];
- for(var i=0; i<20; ++i) {
- polylinePoints.push(hermiteSpline.evaluate(i/20));
- }
- var polylineCollection = new Cesium.PolylineCollection();
- var polyline = polylineCollection.add();
- polyline.setPositions(polylinePoints);
- primitives.add(polylineCollection);
- // Red tube
- var redTube = new Cesium.GeometryInstance({
- geometry : new Cesium.PolylineVolumeGeometry({
- polylinePositions : polylinePoints,
- vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
- shapePositions : Cesium.Shapes.compute2DCircle(60000),
- cornerType : Cesium.CornerType.ROUNDED
- }),
- modelMatrix: Cesium.Matrix4.multiply(
- Cesium.Matrix4.IDENTITY, Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromRotationY(0.2), new Cesium.Cartesian3(0.0, 0.0, 0.0))),
- attributes : {
- color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
- }
- });
- // Add instances to primitives
- primitives.add(new Cesium.Primitive({
- geometryInstances : [redTube],
- appearance : new Cesium.PerInstanceColorAppearance({
- translucent : false,
- closed : true
- })
- }));
- Sandcastle.finishedLoading();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement