JSRUN 用代码说话

四元数

编辑教程

四元数

四元数的实现。这是用来旋转的东西,而不遇到可怕的万向节锁问题,以及其他优点。

例子

var quaternion = new THREE.Quaternion();
quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );

var vector = new THREE.Vector3( 1, 0, 0 );
vector.applyQuaternion( quaternion );

构造器

四元数(x:浮点,y:浮点,z:浮点,w:浮点)

x-x坐标

y-y坐标

z-z坐标

w-w坐标

属性

.Is四元数:布尔值

用于检查此类或派生类是否为四元数。默认值为true。

您不应更改此设置,因为它在内部用于优化。

.x:浮动

.y:浮动

.z:浮动

.w:浮动

方法

.angleTo(q:四元数):浮点

返回此四元数和四元数q之间的角度(以弧度为单位)。

.clone():四元数

创建具有与此四元数相同的x、y、z和w特性的新四元数。

.conjugate():四元数

返回此四元数的旋转共轭。四元数的共轭表示绕旋转轴在相反方向上的相同旋转。

.copy(q:四元数):四元数

将q的x、y、z和w属性复制到此四元数中。

.equals(v:四元数):布尔值

v-四元数将与之比较的四元数。

将v的x、y、z和w特性与此四元数的等效特性进行比较,以确定它们是否表示相同的旋转。

.dot(v:四元数):浮点

计算四元数v和这个的点积。

.fromArray(数组:数组,偏移量:整数):四元数

数组-用于构造四元数的格式数组(x,y,z,w)。

偏移量-(可选)数组中的偏移量。

从数组中设置此四元数的x、y、z和w特性。

.inverse():四元数

反转此四元数-计算共轭。假设四元数具有单位长度。

.length():浮点

计算此四元数的欧几里德长度(直线长度),视为四维向量。

.lengthSq():浮动

计算此四元数的欧几里德长度(直线长度),视为四维向量。如果要比较两个四元数的长度,这会很有用,因为这是比length()稍微更有效的计算。

.normalize():四元数

规格化此四元数-也就是说,计算执行与此四元数相同旋转,但长度等于1的四元数。

.multiply(q:四元数):四元数

将这个四元数乘以q。

.多个四元数(a:四元数,b:四元数):四元数

将此四元数设置为a x b。

改编自本文概述的方法。

.预乘(q:四元数):四元数

将此四元数预乘以q。

.rotateTowards(q:四元数,step:Float):四元数

目标四元数。

阶跃-以弧度表示的角阶跃。

将此四元数按给定的角度步进旋转到定义的四元数q。该方法确保最终四元数不会超出q。

.slerp(qb:四元数,t:浮点):四元数

qb-另一个四元数旋转

t—闭合区间内的插值因子[0,1]。

处理四元数之间的球形线性插值。t表示此四元数(其中t为0)与qb(t为1)之间的旋转量。将此四元数设置为结果。另请参阅下面的slerp静态版本。

// rotate a mesh towards a target quaternion
    mesh.quaternion.slerp( endQuaternion, 0.01 );

.set(x:浮点,y:浮点,z:浮点,w:浮点):四元数

设置此四元数的x、y、z、w特性。

.setFromAxisAngle(轴:向量3,角度:浮点):四元数

从轴和角度指定的旋转设置此四元数。

改编自这里的方法。

假设轴是标准化的,角度以弧度为单位。

.setFromEuler(euler:euler):四元数

从Euler angle指定的旋转角度设置此四元数。

.setFromRotationMatrix(m:Matrix4):四元数

从m的旋转分量设置此四元数。

改编自这里的方法。

.setFromUnitVectors(vFrom:Vector3,vTo:Vector3):四元数

将此四元数设置为将方向向量vFrom旋转到方向向量vTo所需的旋转。

改编自这里的方法。

假设vFrom和vTo被规范化。

.toArray(数组:数组,偏移量:整数):数组

array—存储四元数的可选数组。如果未指定,将创建一个新数组。

偏移量-(可选)如果指定,结果将复制到此数组中。

以[x,y,z,w]格式的数组返回此四元数的数值元素。

静态方法

静态方法(与实例方法相反)设计为直接从类调用,而不是从特定实例调用。因此,要使用的静态版本,请按如下方式调用:

三.四元数.slerp(qStart,qEnd,qTarget,t);相比之下,称为“正常”或实例slerp

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟