Arcball轨迹球

Posted Reise

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arcball轨迹球相关的知识,希望对你有一定的参考价值。

Arcball屏幕后面的虚拟轨迹球。Arcball的作用是输入屏幕上的点击或拖动,输出轨迹球的旋转量(旋转矩阵或四元数),用来控制摄像机等物体的旋转。

 https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Arcball

  1. Convert the screen coordinates (in pixels) to camera coordinates (in [-1, 1])
  2. Compute the vectors OP1 and OP2, the points at the surface of the ball that match our mouse click
    • x and y coordinates are directly taken from the click in camera coordinates
    • z coordinate is computed using the classical Pythagorean theorem{\\displaystyle \\scriptstyle b\\;=\\;{\\sqrt {c^{2}\\,-\\,a^{2}}}.\\,}
    • If P1 or P2 is too far away from the sphere ({\\displaystyle \\scriptstyle \\left|\\mathbf {OP} \\right|\\;>\\;1}), we normalize it to get the nearest point on the surface of the ball
  3. We have {\\displaystyle \\scriptstyle \\mathbf{\\displaystyle \\scriptstyle \\mathbf {a} \\cdot \\mathbf {b} \\;=\\;\\left\\|\\mathbf {a} \\right\\|\\,\\left\\|\\mathbf {b} \\right\\|\\cos(\\theta )}, and the ball\'s size is 1 ({\\displaystyle \\scriptstyle \\left\\|\\mathbf {a} \\right\\|\\;=\\;\\left\\|\\mathbf {b} \\right\\|\\;=\\;1}), so we get the angle using {\\displaystyle \\scriptstyle \\arccos \\left(\\mathbf {OP1} \\cdot \\mathbf {OP2} \\right)}.
  4. Get the rotation axis in 3D, we compute {\\displaystyle \\scriptstyle \\mathbf {OP1} \\times \\mathbf {OP2} }, which will give a unit perpendicular vector

以上是关于Arcball轨迹球的主要内容,如果未能解决你的问题,请参考以下文章

移动端轨迹采集和上传->高德猎鹰轨迹服务

百度地图绘制运动轨迹技巧

什么是 控制轨迹

GPS怎样进行轨迹回放

ArcGIS轨迹线生成

百度地图上如何实现轨迹回放