SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics

作者:刘大

本文同步更新于简书文章https://www.jianshu.com/p/3577efdb37e8
EllipseGraphics,顾名思义就是椭圆的实体对象,我们首先通过下面的图1来看下EllipseGraphics具有哪些参数,
SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics

1.semiMajorAxis:椭圆长半轴;
2.semiMinorAxis:椭圆短半轴,其值应不大于semiMajorAxis,长短半轴相等即为圆;
3.height:椭圆相对于地球椭球面的高度;
4.extrudedHeight:t椭圆的挤压面相对于地球椭球面的高度;其值与height相等为椭圆,不等则为柱体,不设置默认与height一致;
5.show:是否显示,默认为true;
6.fill:是否使用纹理填充,默认为true,若设置为false,则设置的material属性无效,可用在只显示轮廓线时;
7.outline:是否显示轮廓线,默认显示;
8.outlineColor:轮廓线颜色,outlineWidth线宽度(该值设置无效)
9.numberOfVerticalLines:轮廓线垂直椭球面的条数;默认为12;
10.rotation:椭圆从北面逆时针旋转的角度;
11.stRotation:椭圆纹理从北面逆时针旋转的角度;
12.granularity:椭圆上各点之间的角距离,默认为Cesium.Math.RADIANS_PER_DEGREE,即(Math.PI / 180.0)改值越小,椭圆越光滑;
13.shadows:是否显示阴影;
14.distanceDisplayCondition:椭圆显示的相机高度范围,参数设置可查看下图
SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics
简单说明了下各个参数,接下来我们直接看代码以及运行效果,直观的感受下吧

SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphicsSuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics

运行效果:

SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics
除此之外,我们还可以借助CallbackProperty,我们自定义一个callback函数,在不同的状态下,返回不同的值;比如改变椭圆长短半轴的值,椭圆纹理的旋转角度等,来实现呼吸以及转动的动态效果,下面就直接看看主要代码和效果动图吧
SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphicsSuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics
效果:
SuperMap iClient3D for WebGL教程(Entity)-EllipseGraphics