Class Quaternion

Class Quaternion

Package : @aspose/3d (v24.12.0)

Quaternion est utilisé tout au long du @aspose/3d API pour représenter des rotations sans blocage de cardan. C’est le type renvoyé par Transform.rotation et GlobalTransform.rotation. Le quaternion d’identité (1, 0, 0, 0) représente aucune rotation. Quaternion est exporté depuis le @aspose/3d/utilities sous‑chemin.

export class Quaternion
import { Quaternion } from '@aspose/3d/utilities';

ColladaSaveOptions

Faire pivoter un nœud de 90° autour de l’axe Y, puis interpoler en douceur jusqu’à l’identité.

import { Scene } from '@aspose/3d';
import { Quaternion } from '@aspose/3d/utilities';

const scene = new Scene();
const node = scene.rootNode.createChildNode('spinner');

// 90° around Y
const q90 = Quaternion.fromEulerAngle(0, Math.PI / 2, 0);
node.transform.rotation = q90;

// Slerp halfway back to identity
const identity = Quaternion.IDENTITY;
const half = Quaternion.slerp(0.5, q90, identity);
console.log(`Half rotation W: ${half.w.toFixed(4)}`);
// Half rotation W: 0.9239

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptions
new Quaternion()Crée le quaternion d’identité (1, 0, 0, 0).
new Quaternion(w, x, y, z)Crée un quaternion à partir de composants explicites.

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
wnumberComposante scalaire (réelle). Pour un quaternion de rotation unitaire, w = cos(θ/2).
xnumberComposante X de la partie vectorielle.
ynumberComposante Y de la partie vectorielle.
znumberComposante Z de la partie vectorielle.
lengthnumber (lecture seule)Magnitude : sqrt(w² + x² + y² + z²). Doit être 1.0 pour un quaternion de rotation valide.

Propriétés statiques

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
Quaternion.IDENTITYQuaternionRenvoie un nouveau quaternion identité (1, 0, 0, 0).

Méthodes statiques

Quaternion.fromEulerAngle(pitch, yaw, roll)

Crée un quaternion à partir d’angles d’Euler exprimés en radians.

static fromEulerAngle(pitch: number, yaw: number, roll: number): Quaternion
static fromEulerAngle(vec: Vector3): Quaternion

ColladaSaveOptions

pitch number — Rotation autour de l’axe X en radians.

yaw number — Rotation autour de l’axe Y en radians.

roll number — Rotation autour de l’axe Z en radians.

Alternativement, passez un seul Vector3 dont x, y, z contiennent le tangage, le lacet et le roulis.

ColladaSaveOptions

import { Quaternion } from '@aspose/3d/utilities';

const q = Quaternion.fromEulerAngle(0, Math.PI / 4, 0); // 45° around Y
console.log(`W: ${q.w.toFixed(4)}`); // W: 0.9239

Quaternion.fromAngleAxis(angle, axis)

Crée un quaternion représentant une rotation de angle radians autour de axis.

static fromAngleAxis(angle: number, axis: Vector3): Quaternion

ColladaSaveOptions

angle number — Angle de rotation en radians.

axis Vector3 — L’axe de rotation. N’a pas besoin d’être normalisé.

ColladaSaveOptions

import { Quaternion, Vector3 } from '@aspose/3d/utilities';

const axis = new Vector3(0, 1, 0);
const q = Quaternion.fromAngleAxis(Math.PI / 2, axis);
console.log(`Rotating 90° around Y — W: ${q.w.toFixed(4)}`);
// Rotating 90° around Y — W: 0.7071

Quaternion.fromRotation(orig, dest)

Crée le quaternion d’arc le plus court qui fait pivoter le vecteur de direction orig vers dest.

static fromRotation(orig: Vector3, dest: Vector3): Quaternion

Quaternion.slerp(t, v1, v2)

Effectue une interpolation linéaire sphérique entre v1 et v2 au paramètre t (0.0 = v1, 1.0 = v2).

static slerp(t: number, v1: Quaternion, v2: Quaternion): Quaternion

ColladaSaveOptions

import { Quaternion } from '@aspose/3d/utilities';

const start = Quaternion.fromEulerAngle(0, 0, 0);
const end = Quaternion.fromEulerAngle(0, Math.PI, 0);
const mid = Quaternion.slerp(0.5, start, end);
console.log(`Mid W: ${mid.w.toFixed(4)}`); // Mid W: 0.7071

Quaternion.interpolate(t, fromQ, toQ)

Alias de slerp. Effectue une interpolation linéaire sphérique.

static interpolate(t: number, fromQ: Quaternion, toQ: Quaternion): Quaternion

IOConfig (base)

normalize()

Renvoie un nouveau quaternion mis à l’échelle à une longueur unité.

normalize(): Quaternion

conjugate()

Renvoie le conjugué (w, -x, -y, -z).

conjugate(): Quaternion

inverse()

Renvoie le quaternion inverse. Lève une exception si le quaternion a une longueur nulle.

inverse(): Quaternion

dot(q)

Renvoie le produit scalaire avec le quaternion q.

dot(q: Quaternion): number

concat(rhs)

Renvoie le produit quaternionique this * rhs, représentant la rotation combinée d’abord en appliquant this et ensuite rhs.

concat(rhs: Quaternion): Quaternion

eulerAngles()

Renvoie la rotation exprimée en angles d’Euler en radians sous forme de Vector3(pitch, yaw, roll).

eulerAngles(): Vector3

ColladaSaveOptions

import { Quaternion } from '@aspose/3d/utilities';

const q = Quaternion.fromEulerAngle(0, Math.PI / 3, 0);
const euler = q.eulerAngles();
console.log(`Yaw: ${euler.y.toFixed(4)}`);
// Yaw: 1.0472  (= π/3)

toMatrix()

Convertit ce quaternion en un équivalent Matrix4 matrice de rotation.

toMatrix(): Matrix4

equals(other)

ColladaSaveOptions true si les quatre composantes sont strictement égales.

equals(other: Quaternion): boolean

toString()

Renvoie une chaîne sous la forme Quaternion(w, x, y, z).

toString(): string
 Français