Class Quaternion

Class Quaternion

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

Quaternion bruges gennem hele @aspose/3d API til at repræsentere rotationer uden gimbal lock. Det er den type, der returneres af Transform.rotation og GlobalTransform.rotation. Den identitetsquaternion (1, 0, 0, 0) repræsenterer ingen rotation. Quaternion eksporteres fra den @aspose/3d/utilities understi.

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

Enumerations

Roter en node 90° omkring Y‑aksen og interpolér derefter glat tilbage til identitet.

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

Enumerations

EnumerationsEnumerations
new Quaternion()Opretter den identitetsquaternion (1, 0, 0, 0).
new Quaternion(w, x, y, z)Opretter en quaternion ud fra eksplicitte komponenter.

Enumerations

EnumerationsEnumerationsEnumerations
wnumberSkalar (reel) komponent. For en enhedsrotationsquaternion, w = cos(θ/2).
xnumberX-komponent af vektordelen.
ynumberY-komponent af vektordelen.
znumberZ-komponent af vektordelen.
lengthnumber (skrivebeskyttet)Størrelse: sqrt(w² + x² + y² + z²). Skal være 1.0 for en gyldig rotationskvaternion.

Statiske egenskaber

EnumerationsEnumerationsEnumerations
Quaternion.IDENTITYQuaternionReturnerer en ny identitetskvaternion (1, 0, 0, 0).

Statiske metoder

Quaternion.fromEulerAngle(pitch, yaw, roll)

Opretter en quaternion ud fra Euler‑vinkler i radianer.

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

Enumerations

pitch number — Rotation omkring X-aksen i radianer.

yaw number — Rotation omkring Y-aksen i radianer.

roll number — Rotation omkring Z-aksen i radianer.

Alternativt kan du videregive en enkelt Vector3 hvis x, y, z indeholder pitch, yaw og roll.

Enumerations

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)

Opretter en quaternion, der repræsenterer en rotation på angle radianer omkring axis.

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

Enumerations

angle number — Rotationsvinkel i radianer.

axis Vector3 — Rotationsaksen. Behøver ikke at være normaliseret.

Enumerations

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)

Opretter den korteste-bue quaternion, der roterer retningsvektoren orig til dest.

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

Quaternion.slerp(t, v1, v2)

Udfører sfærisk lineær interpolation mellem v1 og v2 ved parameter t (0.0 = v1, 1.0 = v2).

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

Enumerations

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 for slerp. Udfører sfærisk lineær interpolation.

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

Instansmetoder

normalize()

Returnerer en ny quaternion skaleret til enhedslængde.

normalize(): Quaternion

conjugate()

Returnerer konjugatet (w, -x, -y, -z).

conjugate(): Quaternion

inverse()

Returnerer den inverse quaternion. Kaster en fejl, hvis quaternionen har nul længde.

inverse(): Quaternion

dot(q)

Returnerer det skalære prikprodukt med quaternion q.

dot(q: Quaternion): number

concat(rhs)

Returnerer quaternion-produktet this * rhs, der repræsenterer den kombinerede rotation ved først at anvende this og derefter rhs.

concat(rhs: Quaternion): Quaternion

eulerAngles()

Returnerer rotationen udtrykt som Euler-vinkler i radianer som en Vector3(pitch, yaw, roll).

eulerAngles(): Vector3

Enumerations

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()

Konverterer denne quaternion til en ækvivalent Matrix4 rotationsmatrix.

toMatrix(): Matrix4

equals(other)

Enumerations true hvis alle fire komponenter er strengt ens.

equals(other: Quaternion): boolean

toString()

Returnerer en streng i formen Quaternion(w, x, y, z).

toString(): string
 Dansk