动画信息类。
程序集: SuperMap.Data (in SuperMap.Data)
版本: dll
语法
C# |
---|
public class Animation |
备注
模型动画效果是目前三维技术的一个热点技术。三维游戏中虚拟人物的奔跑,坦克炮塔的旋转,都是模型动画的实际应用。模型动画技术的重要意义在于使得三维场景中的模型对象运动起来,人们可以通过动画获取对象的动态视觉效果。模型动画技术应用在GIS产品中,使得地理信息系统的视觉体验更加趋向于真实。通过对模型动画的观察,使用者能够获取模型各个部位的动作信息,而不再只是静态的图像。
SuperMap GIS 对模型动画技术的实现,主要体现在对第三方模型动画的支持上。通过将第三方的动画模型文件导入,用户可以控制动画的播放,从而实现在三维场景中展现出动态的对象。
下图中活动的坦克和直升飞机便是模型动画的实际应用效果。
示意图:
实际效果:
示例
以下代码示范如何在场景中显示模型动画,并对其进行设置。
假设已经有一个 KML 文件(FireTruck.kml),并且由建模师制作好了一个模型 firetruck.SGM,同时获取了场景控件sceneControl。
CopyC#
public void AnimationModel(SceneControl sceneControl) { // 从场景控件获取三维场景 Scene scene = sceneControl.Scene; // 向三维场景中添加kml文件,返回kml图层layer String kmlPath = @"..\..\Models\FireTruck.kml"; Layer3D kmlLayer = scene.Layers.Add(kmlPath, Layer3DType.KML, true); // 新建GeoModel对象,并获得动画模型的路径 GeoModel geoModel = new GeoModel(); String modelPath = @"..\..\Models\FireTruck\firetruck.SGM"; Point3D point = new Point3D(116, 39, 5); Boolean isSuccess = geoModel.FromFile(modelPath, point); if (isSuccess) { // 将模型添加进layer的features kmlLayer.Features.Add(geoModel); Feature3D feature = kmlLayer.Features.FindFeature(1, Feature3DSearchOption.AllFeatures); GeoModel animationModel = (GeoModel)feature.Geometry; // 获取Animation 对象 Animation animation = animationModel.Animation; // 设置模型动画是否可用及动画模式 animation.Enabled = true; animation.PlayMode = PlayMode.Once; // 设置动画是否自动更新,及其更新时间 animation.IsAutoUpdated = true; animation.Update(50); //设置动画的开始时间和结束时间,查看效果 animation.StartTime = 5000; animation.EndTime = 10000; } }
继承层次
System..::.Object
SuperMap.Data..::.Animation
SuperMap.Data..::.Animation