3D数学基础至四元数

3D数学在游戏开发中是一个基本功,这里的数学主要指的是向量,矩阵,欧拉角,四元素等等这些,将来还要讲讲光照这些。

在讲四元数之前,本文假定读者已经了解复数的相关知识,如果没有,麻烦你先去看一下复数的相关知识,然后来看这篇文章。

首先,四元数是什么?它是用来干啥的?

四元数就是一个超复数,那啥又是超复数呢?我们一般的复数都是一个实部+一个虚部,例如:z=x+yi。但是超复数它是一个实部加上三个虚部,例如:q=q0+q1*i+q2*j+q*k.

在这里,q1,q2,q3即使向量又是变量。i,j,k他们是虚数基,可以将他们视作虚坐标中,三个相互垂直的单位向量,而且:i*j*k=-1.

纯向量表示的四元数:q=<q0,q1,q2,q3>

四元数的操作:

1.四元数的加减法和复数的加减法是相同的。

2.加法逆元素和加法恒等元:

加法逆元素是指:与q相加,而且结果为0,它就是-q。

q=q0+qv,加法逆元素:-q=-q0-qv,其中qv=q1*i+q2*j+q*k。

加法恒等元就是0.

3.乘法:

q=q0+qv,  p=p0+pv

则:q*p=(q0*p0-(pv*qv))+(p0*qv+q0*pv+pvXqv),注意,这个里面有向量的点成也有叉乘。

而且,乘法恒等元就是q=<1,0,0,0>

4.共轭四元数:

对于一个四元数q=q0+qv,它的共轭四元数就是将虚部的符号取反:q*=q0-qv=q0-q1*i-q2*j-q*k.

而且,四元数和它共轭的乘积就是各个元素的平方相加。

5.四元数范数:q=q0+qv,则,|q|=各元素的平方和开根号。(打平方有点费事,就直接用语言来描述了)

6。倒数(q-1)

q*q-1=1=q-1*q,两边同时乘以q*(共轭),则:(q*q-1)*q*=(q-1*q)*q*=q*,so:q-1*(q*q*)=q*,又因为:q*q*=|q|2,则:q-1=q*|q|2.

如果,q是一个单位四元数,并且|q|=1,则:q-1=q*.

好了,今天我们先是回答了开篇我们提出的第一个问题,什么是四元数。下一篇我们回答四元数是用来干啥的!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值