3D数学--学习笔记(三):3D中绕任意轴的旋转

不要小看我们在Unity或者3DMAX中的一个简单的旋转物体操作。

——题记

这里需要用到的知识:向量运算(数量积,叉乘,加减)、矩阵基本运算。

让我们导出绕任意轴n旋转角度Θ的矩阵。

即 vR(n.Θ) = v ' 。

只要能用v,n,Θ表示出v ' 即可,然后再求出基向量。

方法如下:(看图)

说明:

1.向量n是单位向量

2.VII向量和VT向量是V向量的分向量,即满足:V = VII + VT   ①,同时,由于VII平行于n向量,它也是V在n上的投影,于是有 VII = (V *n)n  ②(与物理上的求做功大小是一样理解的!)。

3.V ' 向量是 V向量 绕 n旋转后得到的向量,虚线表示,同理VT ' 。

4.W向量是垂直于V,VII所在平面的向量,这是引入的,为了便于讨论问题,其长度 =  V 向量模长。W是VT绕n旋转90°得到的,故有:W = n X VT   ③。(力矩知识哈!)

下面开始求解:

由旋转后,可以得到:VT ' = VT * COSΘ + W * SinΘ     ④(三角函数知识哈..超级有用的玩意儿)

由②、①可推出 VT = V - (V * n)n  。⑤

由①、②、③可得: W = n X v。⑥

将⑤、⑥带入 ④ 可得:

v ' = (v - (v*n)n)cosΘ + (n x v)sinΘ +(v * n)n

现在已经得到v ' 与v,n,Θ的关系了,于是,下一步就是得到基向量然后再构造矩阵,哈哈。

第一个基向量为:

p  = [1  0  0]

p ' = (p - ( p * n )n)cosΘ + (n x p)sinΘ + (p * n)n

然后按照矩阵运算方法即可,还算简单吧!

最后得到:


另外两个基向量的方法类似,同时我们也就得到了R(n,Θ) :



  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值