zoukankan      html  css  js  c++  java
  • ArcEngine 3D开发之动画1——动画的两种实现方式

    动画的实现方式主要有两种:IAnimationTrack和ICamera。

    一、Animation

    (1)、基于关键帧

    (2)、设置每个关键帧的ImeStamp来确定播放时间(该帧占总播放时间的百分比)

    (3)、便于使用,集成了视频输出接口。可输出.AVI

    二、Camera

    两个位置

    - Observer:Camera所在的位置
    - Target:Camera所指向的位置
    • 获取位置
    - GetObserverLatLonAlt
    - GetTargetLatLonAlt
    • 设置位置
    - SetObserverLatLonAlt
    - SetTargetLatLonAlt

    - 注意:这两个方法所设置的高度的单位必须是千米

    • 实现方式
    - 通过设置GlobeCamera的Observer和Target来控制视角。
    - 使用Timer控制来控制时间。
    • 特点:
    - 麻烦!
    - 可精确控制,实现Animation所不能实现的功能

    三、ArcGlobe中的导航模式

    (1)ArcGlobe下的导航模式是通过 使用照相机对象实现的。所有 3D 视图都对应一个包含观察点位置(observer,照相机在3D视图中的位置)和目标位置(Target,  即照相机对准的3D点)的照相机。

    (2)所有的3D导航方法都是通过控制以XYZ表示的Observer和Targeter的位置来实现的。

    - 移动观察点位置来从不同角度查看同一点。
    - 移动目标位置来从同一个位置查看其他点。
    - 同时移动观察点和目标位置可以在 3D 视图中飞行或移动到全新区域。

    四、综合比较两种方式,基于Camera的实现方法较为精确,但是较为复杂,需要不停的变换Observer和Targeter的位置。基于Animation的方法则创建关键帧,通过控制播放时间来实现动画。接下来的博文将分别介绍基于以上两种方法所实现的动画。




  • 相关阅读:
    算法:最小公倍数的求解方法
    使用C语言中qsort()函数对浮点型数组无法成功排序的问题
    用两个栈模拟实现一个队列
    单链表反向查找
    单链表逆序
    斐波那契(Fibonacci)数列的几种计算机解法
    最大子列和问题
    Visual Studio个人常用快捷键
    数字根(digital root)
    秦九韶算法(霍纳算法)求解多项式
  • 原文地址:https://www.cnblogs.com/giser-whu/p/3720022.html
Copyright © 2011-2022 走看看