Cesium】绘制线、面、体"/>
【Cesium】绘制线、面、体
文章目录
- 墙
- 矩形
- 长方体
- 不规则图形
- 椭圆
- 椭圆柱
- 正圆
- 圆柱
- 圆锥
- 不规则多边形柱
- 一串糖葫芦?
- 带洞的矩形
- 一系列矩形、圆形
- 贴地的线
- 围墙
- 宽线
- 宽线的体
- 复杂线状体
- 一根水管
墙
entities.add({wall: {id:"wall",positions: Cesium.Cartesian3.fromDegreesArray([-95.0,50.0,-85.0,50.0,-75.0,50.0,]),maximumHeights: [500000, 1000000, 500000],minimumHeights: [0, 500000, 0],outline: true,outlineColor: Cesium.Color.LIGHTGRAY,outlineWidth: 4,material: Cesium.Color.fromRandom({ alpha: 0.7 }),},
});
矩形
entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(-92.0, 20.0, -86.0, 27.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,stRotation: Cesium.Math.toRadians(45),material: stripeMaterial,},
});
长方体
entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(-118.0,38.0,-116.0,40.0),extrudedHeight: 500000.0,outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,stRotation: Cesium.Math.toRadians(45),material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
不规则图形
entities.add({polygon: {hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([-107.0,27.0,-107.0,22.0,-102.0,23.0,-97.0,21.0,-97.0,25.0,])),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,material: stripeMaterial,},
});
椭圆
entities.add({position: Cesium.Cartesian3.fromDegrees(-80.0, 25.0),ellipse: {semiMinorAxis: 300000.0,semiMajorAxis: 500000.0,rotation: Cesium.Math.toRadians(-40.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,stRotation: Cesium.Math.toRadians(22),material: stripeMaterial,},
});
椭圆柱
entities.add({position: Cesium.Cartesian3.fromDegrees(-117.0, 35.0),ellipse: {semiMinorAxis: 100000.0,semiMajorAxis: 200000.0,height: 100000.0,extrudedHeight: 200000.0,rotation: Cesium.Math.toRadians(90.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
正圆
entities.add({position: Cesium.Cartesian3.fromDegrees(-72.0, 25.0),ellipse: {semiMinorAxis: 250000.0,semiMajorAxis: 250000.0,rotation: Cesium.Math.toRadians(-40.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,stRotation: Cesium.Math.toRadians(90),material: stripeMaterial,},
});
圆柱
entities.add({position: Cesium.Cartesian3.fromDegrees(-70.0, 45.0, 100000.0),cylinder: {hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([-118.0,30.0,-115.0,30.0,-117.1,31.1,-118.0,33.0,])),length: 200000.0,topRadius: 150000.0,bottomRadius: 150000.0,outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
圆锥
entities.add({position: Cesium.Cartesian3.fromDegrees(-70.0, 40.0, 200000.0),cylinder: {hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([-118.0,30.0,-115.0,30.0,-117.1,31.1,-118.0,33.0,])),length: 400000.0,topRadius: 0.0,bottomRadius: 200000.0,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
不规则多边形柱
entities.add({polygon: {hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([-118.0,30.0,-115.0,30.0,-117.1,31.1,-118.0,33.0,])),// 离地高度height: 300000.0,extrudedHeight: 700000.0,outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 4,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
一串糖葫芦?
for (i = 0; i < 5; ++i) {height = 100000.0 + 200000.0 * i;entities.add({position: Cesium.Cartesian3.fromDegrees(-106.0, 45.0, height),box: {dimensions: new Cesium.Cartesian3(90000.0, 90000.0, 90000.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 2,material: Cesium.Color.fromRandom({ alpha: 0.5 }),},});entities.add({position: Cesium.Cartesian3.fromDegrees(-102.0, 45.0, height),ellipsoid: {radii: new Cesium.Cartesian3(45000.0, 45000.0, 90000.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 2,material: Cesium.Color.fromRandom({ alpha: 0.5 }),},});entities.add({position: Cesium.Cartesian3.fromDegrees(-98.0, 45.0, height),ellipsoid: {radii: new Cesium.Cartesian3(67500.0, 67500.0, 67500.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 2,material: Cesium.Color.fromRandom({ alpha: 0.5 }),},});
}
带洞的矩形
entities.add({polygon: {hierarchy: {positions: Cesium.Cartesian3.fromDegreesArray([-109.0,30.0,-95.0,30.0,-95.0,40.0,-109.0,40.0,]),holes: [{positions: Cesium.Cartesian3.fromDegreesArray([-107.0,31.0,-107.0,39.0,-97.0,39.0,-97.0,31.0,]),holes: [{positions: Cesium.Cartesian3.fromDegreesArray([-105.0,33.0,-99.0,33.0,-99.0,37.0,-105.0,37.0,]),holes: [{positions: Cesium.Cartesian3.fromDegreesArray([-103.0,34.0,-101.0,34.0,-101.0,36.0,-103.0,36.0,]),},],},],},],},material: stripeMaterial,},
});
一系列矩形、圆形
for (i = 0; i < 5; ++i) {height = 200000.0 * i;entities.add({position: Cesium.Cartesian3.fromDegrees(-65.0, 35.0),ellipse: {semiMinorAxis: 200000.0,semiMajorAxis: 200000.0,height: height,material: Cesium.Color.fromRandom({ alpha: 0.5 }),},});entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(-67.0,27.0,-63.0,32.0),height: height,material: Cesium.Color.fromRandom({ alpha: 0.5 }),},});
}
贴地的线
positions = [];
for (i = 0; i < 40; ++i) {positions.push(Cesium.Cartesian3.fromDegrees(-100.0 + i, 15.0));
}
entities.add({polyline: {positions: positions,width: 10.0,material: new Cesium.PolylineGlowMaterialProperty({color: Cesium.Color.DEEPSKYBLUE,glowPower: 0.25,}),},
});
围墙
entities.add({wall: {positions: Cesium.Cartesian3.fromDegreesArrayHeights([-90.0,43.0,100000.0,-87.5,45.0,100000.0,-85.0,43.0,100000.0,-87.5,41.0,100000.0,-90.0,43.0,100000.0,]),material: new Cesium.CheckerboardMaterialProperty({repeat: new Cesium.Cartesian2(20.0, 6.0),}),},
});
宽线
entities.add({corridor: {positions: Cesium.Cartesian3.fromDegreesArray([-120.0,45.0,-125.0,50.0,-125.0,55.0,]),width: 100000,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
宽线的体
entities.add({corridor: {positions: Cesium.Cartesian3.fromDegreesArray([-120.0,45.0,-125.0,50.0,-125.0,55.0,]),width: 100000,height: 300000,extrudedHeight: 400000,material: Cesium.Color.fromRandom({ alpha: 0.7 }),},
});
复杂线状体
function starPositions(arms, rOuter, rInner) {const angle = Math.PI / arms;const pos = [];for (let i = 0; i < 2 * arms; i++) {const r = i % 2 === 0 ? rOuter : rInner;const p = new Cesium.Cartesian2(Math.cos(i * angle) * r,Math.sin(i * angle) * r);pos.push(p);}return pos;
}entities.add({polylineVolume: {positions: Cesium.Cartesian3.fromDegreesArrayHeights([-102.0,15.0,100000.0,-105.0,20.0,200000.0,-110.0,20.0,100000.0,]),shape: starPositions(7, 30000.0, 20000.0),outline: true,outlineColor: Cesium.Color.WHITE,outlineWidth: 1,material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});entities.add({polylineVolume: {positions: Cesium.Cartesian3.fromDegreesArray([-102.0,15.0,-105.0,20.0,-110.0,20.0,]),shape: starPositions(7, 30000.0, 20000.0),material: Cesium.Color.fromRandom({ alpha: 1.0 }),},
});
一根水管
function computeCircle(radius) {const positions = [];for (let i = 0; i < 360; i++) {const radians = Cesium.Math.toRadians(i);positions.push(new Cesium.Cartesian2(radius * Math.cos(radians),radius * Math.sin(radians)));}return positions;
}entities.add({
// .html?classFilter=polylineVolumepolylineVolume: {positions: Cesium.Cartesian3.fromDegreesArray([-104.0,13.0,-107.0,18.0,-112.0,18.0,]),shape: computeCircle(40000.0),material: Cesium.Color.WHITE,},
});
更多推荐
【Cesium】绘制线、面、体
发布评论