3D数学四元数

xiaoxiao2021-03-01  31

向量的叉乘(外积/叉积): a(ax, ay, az) b(bx, by, bz) a x b = c (aybz – azby, axbz – azbx, axby - aybx)

两个向量叉乘的几何意义: 得到一个新的向量,c向量,c向量同时垂直于a向量和b向量。垂直于a向量和b向量所组成的平面,我们也把c向量叫做那个平面的法向量。

向量的叉乘不满足乘法交换律,但是有一定的规律: a x b = - (b x a)  互为负向量。 c向量的模长 = |a||b|sin<a,b>

四元数: 复数(虚数):是一个复合型的数,是由实数部分(实部)和虚数部分(虚部)组成,当实部为0,这个复数就变成了纯虚数,当虚数部分为0,这个复数就变成了实数。 虚数:我们将一个数的平方等于-1,那么这个数就是虚数单位。 实数:有理数和无理数的集合。 有理数:一切有道理的数 — 有限数和无限循环小数 无理数:没有道理的数 — 无限不循环数。 四元数是一种超复数:x y z w  其中w是实部,剩下的x y z 都是虚部,我们就可以把四元数表示为: Q = w + xi + yj + zk (其中ijk全是虚数单位)

四元数是数学家汉密尔顿最先推导,为了表示旋转,四元数中存储着的是一对儿 轴角对儿,含义是绕着某根轴,旋转…度角。

那么这轴角对是如何存储在四元数的四个分量中的呢????? <n(x,y,z),θ> 在四元数中: x = n.x * sin(θ/2) y = n.y * sin(θ/2) z = n.z * sin(θ/2) w = cos(θ/2)

复数运算法则: 加法: (a + bi) + (c + di) = (a + c) + (b + d)i 减法:   (a + bi) - (c + di) = (a - c) + (b - d)i 乘法: (a + bi) * (c + di) = (ac - bd) + (ad + bc)i

q 四元数的模 = sqrt(x^2 + y^2 + z^2 + w^2),模长为1的四元数我们称之为标准四元数。 单位四元数:(0,0,0,1) 几何意义:无旋转。 共轭四元数:将原四元数的虚数部分取负。反向旋转。 四元数的逆 = 共轭四元数/四元数的模。q^-1 * q = 单位四元数

四元数的乘法: Q1 = (v1, w1) Q2 = (v2, w2) Q1 * Q2 = (w1 * v2 + w2 * v1 + v1 x v2, w1 * w2 - v1·v2)

四元数和四元数相乘代表的几何意义是让旋转量进行叠加 四元数和Vector3进行相乘几何意义是 如果Vector3是一个坐标点,让坐标点绕着四元数中的轴角对进行旋转。 如果Vector3是一个向量,让向量绕着过向量起点的轴角对进行旋转。

转载请注明原文地址: https://www.6miu.com/read-4150183.html

最新回复(0)