Arcball轨迹球
Arcball屏幕后面的虚拟轨迹球。Arcball的作用是输入屏幕上的点击或拖动,输出轨迹球的旋转量(旋转矩阵或四元数),用来控制摄像机等物体的旋转。
https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Arcball
- Convert the screen coordinates (in pixels) to camera coordinates (in [-1, 1])
- 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
- We have {\displaystyle \scriptstyle \mathbf
, and the ball's size is 1 (
), so we get the angle using
.
- Get the rotation axis in 3D, we compute
, which will give a unit perpendicular vector
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步