码迷,mamicode.com
首页 > 其他好文 > 详细

Arcball轨迹球

时间:2017-06-21 00:20:40      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:ica   min   llb   books   use   拖动   分享   point   rcc   

技术分享

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技术分享
    • If P1 or P2 is too far away from the sphere (技术分享), we normalize it to get the nearest point on the surface of the ball
  3. We have {\displaystyle \scriptstyle \mathbf技术分享, and the ball‘s size is 1 (技术分享), so we get the angle using 技术分享.
  4. Get the rotation axis in 3D, we compute 技术分享, which will give a unit perpendicular vector

Arcball轨迹球

标签:ica   min   llb   books   use   拖动   分享   point   rcc   

原文地址:http://www.cnblogs.com/codingdiary/p/7056929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!