如何用c语言编写一个点绕另一个点旋转_使用轨迹球(trackball)和弧形球(arc ball)接口构建旋转变换...

这是对Foundation of 3D Computer Graphics第8章的翻译,本章讲解了借助arcball和trackball如何构建旋转变换以及其实现途径。本书内容仍在不断的学习中,因此本文内容会不断的改进。若有任何建议,请不吝赐教ninetymiles@icloud.com。

注:文章中相关内容归原作者所有,翻译内容仅供学习参考。
另:Github项目CGLearning中拥有相关翻译的完整资料、内容整理、课程项目实现。

控制球:轨迹和弧形(Balls: Track and Arc)

在一个交互式的计算机图形程序中,我们经常追踪鼠标的运动并且借助这种数据指定物体运动。平移处理起来相当直接。在小节6.5中,当鼠标左键被摁下,我们解读左/右鼠标运动为x轴方向平移,上/下鼠标运动为y轴方向平移(全部都关联于眼睛帧)。当鼠标右键被摁下,我们解读上/下运动为z轴方向平移。

旋转运动的指定就有一点儿不直观了;存在很多方式将鼠标运动关联解读为旋转变换,对于用户来说,这其中的每一种都让人有稍微不同的感觉。之前,在小节6.5中,我们描述了将鼠标位移解读为围绕x轴和y轴的某种特定旋转序列。本节中,我们会描述两种更加成熟的接口:弧形球(arcball)和轨迹球(trackball)。轨迹球的主要优势在于其让人感觉在空中移动一个真实的球体。弧形球的主要优点在于,如果用户在一个点开始移动鼠标,然后在另一个点结束,最终的旋转变换不依赖于在这两点之间鼠标所采用的路径。

让我们假设我们正在关联于帧

移动物体,就如我们在小节5.2.1中所做的。用户点击在屏幕上并且拖动鼠标。我们希望去解读这种用户运动为某种旋转Q,这种旋转会被关联于
被应用。本章中,为了计算变换Q的值,我们将描述两种不同的方法,轨迹球和弧形球。

8.1 接口定义(The Interfaces)

我们假设拥有某种选定半径的球体,其中心在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值