[WorldWind学习]5.相机对象

  首先查看WorldWindow的事件:OnMouseUp、OnMouseMove、HandleKeyDown,这几个方法中多次调用this.drawArgs.WorldCamera的各种属性实现了场景的控制,包括球的旋转、场景的放大缩小,上下移动。

  1. 接下来查看CameraBase类RotationYawPitchRoll虚函数:

 1 public virtual void RotationYawPitchRoll(Angle yaw, Angle pitch, Angle roll)
 2         {
 3         //    this._orientation *= MathEngine.EulerToQuaternion(yaw.Radians, pitch.Radians, roll.Radians);
 4         //    Vector3 v = MathEngine.QuaternionToEuler(this._orientation);
 5             
 6         //    if(!double.IsNaN(v.Y))
 7         //        this._latitude.Radians = v.Y;
 8         //    if(!double.IsNaN(v.X))
 9         //        this._longitude.Radians = v.X;
10         //    if(Math.Abs(roll.Radians)>Single.Epsilon)
11         //        this._heading.Radians = v.Z;
12 
13 
14             m_Orientation = Quaternion4d.EulerToQuaternion(yaw.Radians, pitch.Radians, roll.Radians) * m_Orientation;
15 
16             Point3d p = Quaternion4d.QuaternionToEuler(m_Orientation);
17             if(!double.IsNaN(p.Y))
18                 _latitude.Radians = p.Y;
19             if(!double.IsNaN(p.X))
20                 _longitude.Radians = p.X;
21             if(Math.Abs(roll.Radians) > double.Epsilon)
22                 _heading.Radians = p.Z;
23         }
RotationYawPitchRoll

相关文章:

  • 2021-05-24
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2021-05-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2021-04-25
相关资源
相似解决方案