需求:可以沿设定的路线动态地展示地段的功能,使观察者具有逼真的、身临其境的感觉。
分析:路径漫游过程中所遵循的路线,是由用户指定的一系列地采样点依次连接构成的空间曲线,为一系列三维坐标点的集合
生成路径,然后根据路径进行漫游。
路径生成:
将用户选择的三维坐标得到一条通过所有点的光滑曲线。为此,我们采用三阶贝塞尔曲线。
三阶贝塞尔曲线,绿点有3个,点与点之间都是按百分比t运动,最终得到一个小黑点。这个小黑点的运动轨迹就是三阶贝塞尔。
控制点:
漫游:
根据鼠标选择点的三维坐标生成经过这些三维坐标的一条曲线,然后将曲线传入WalkPathAnimator中,进行动画展示。
animator便会控制视口按照曲线方向移动与旋转
根据设定漫游速度,路径的长度 -> 漫游的时间
漫游的时间、动画的周期 -> 曲线漫游点,每一个点相当于关键帧curve.fractionToPoint(i / this.siteCount)
每个animation周期,animate()方法中:
调整相机视角ViewState3d.lookAtUsingLensAngle ,更新进度条