Quaternion

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

Quaternion API boyunca kullanılır @aspose/3d API, gimbal kilidi olmadan dönüşleri temsil etmek için kullanılır. Bu, şu tarafından döndürülen tiptir Transform.rotation ve GlobalTransform.rotation. Kimlik kuaterni (1, 0, 0, 0) dönüş olmadığını temsil eder. Quaternion şu konumdan dışa aktarılır @aspose/3d/utilities alt-yol.

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

Enumerations

Bir düğümü Y ekseni etrafında 90° döndür ve ardından sorunsuz bir şekilde birime geri enterpole et.

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

NameTypeAccessDescription
wnumberRead/WriteGets the w.
xnumberRead/WriteGets the x.
ynumberRead/WriteGets the y.
znumberRead/WriteGets the z.
lengthnumberReadGets the length.

Enumerations

SignatureDescription
constructor()Initializes a quaternion with the given w, x, y, and z components
constructor(w: number, x: number, y: number, z: number)
constructor(w: number, x: number, y: number, z: number)
IDENTITY()QuaternionReturns the identity quaternion representing no rotation
normalize()QuaternionReturns a unit‑length version of this quaternion
conjugate()QuaternionReturns the conjugate of the quaternion
inverse()QuaternionReturns the multiplicative inverse of the quaternion
dot(q: Quaternion)numberComputes the dot product with another quaternion
concat(rhs: Quaternion)QuaternionReturns the concatenation (multiplication) of this quaternion with another
eulerAngles()Vector3Returns a Vector3 of Euler angles representing the rotation
fromEulerAngle(pitch: number, yaw: number, roll: number)QuaternionOverload accepts a Vector3 or numeric pitch with yaw and roll
fromEulerAngle(vec: Vector3)Quaternion
`fromEulerAngle(pitch: Vector3number, yaw: number, roll: number)Quaternion`
fromAngleAxis(a: number, axis: Vector3)QuaternionCreates a quaternion from a rotation angle and axis vector
fromRotation(orig: Vector3, dest: Vector3)QuaternionBuilds a quaternion that rotates from one direction vector to another
interpolate(t: number, fromQ: Quaternion, toQ: Quaternion)QuaternionLinearly interpolates between two quaternions using parameter t
slerp(t: number, v1: Quaternion, v2: Quaternion)QuaternionPerforms spherical linear interpolation between two quaternions at t
toString()stringReturns a string representation of the quaternion components
equals(other: Quaternion)booleanChecks whether another quaternion has identical component values
toMatrix()Matrix4Converts the quaternion into a 4×4 rotation matrix

Statik Özellikler

EnumerationsEnumerationsEnumerations
Quaternion.IDENTITYQuaternionYeni bir kimlik kuaterniyonu döndürür (1, 0, 0, 0).

Statik Yöntemler

Quaternion.fromEulerAngle(pitch, yaw, roll)

Euler açılarını radian cinsinden alarak bir quaternion oluşturur.

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

Enumerations

pitch number — X ekseni etrafında radyan cinsinden dönüş.

yaw number — Y ekseni etrafında radyan cinsinden dönüş.

roll number — Z ekseni etrafında radyan cinsinden dönüş.

Alternatif olarak, tek bir Vector3 olan x, y, z pitch, yaw ve roll değerlerini tutar.

Enumerations

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)

Bir dönüşümü temsil eden bir quaternion oluşturur `angle` radyan etrafında `axis`.

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

Enumerations

angle number — Radyan cinsinden dönüş açısı.

axis Vector3 — Dönüş ekseni. Normalleştirilmeye gerek yok.

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)

Yön vektörünü döndüren en kısa yay quaternion’ını oluşturur orig hedefe dest.

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

Quaternion.slerp(t, v1, v2)

Arasında küresel doğrusal enterpolasyon gerçekleştirir v1 ve v2 parametrede t (0.0 = v1, 1.0 = v2).

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

Enumerations

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)

Takma adı `slerp`. Küresel doğrusal enterpolasyon gerçekleştirir.

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

Örnek Yöntemler

normalize()

Birim uzunluğa ölçeklenmiş yeni bir quaternion döndürür.

normalize(): Quaternion

conjugate()

Koniği döndürür (w, -x, -y, -z).

conjugate(): Quaternion

inverse()

Ters quaternion’ı döndürür. Quaternion sıfır uzunlukta ise bir istisna fırlatır.

inverse(): Quaternion

dot(q)

Kuaternion ile skaler nokta çarpımını döndürür q.

dot(q: Quaternion): number

concat(rhs)

Kuaternion çarpımını döndürür this * rhs, önce uygulanarak birleşik dönüşümü temsil eder this ve ardından rhs.

concat(rhs: Quaternion): Quaternion

eulerAngles()

Rotasyonu radyan cinsinden Euler açıları olarak döndürür Vector3(pitch, yaw, roll).

eulerAngles(): Vector3

Enumerations

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

Bu kuaternionu eşdeğer bir `Matrix4` dönüşüm matrisine.

```typescript
toMatrix(): Matrix4

equals(other)

Enumerations true tüm dört bileşen kesinlikle eşitse.

equals(other: Quaternion): boolean

toString()

Şu biçimde bir dize döndürür Quaternion(w, x, y, z).

toString(): string
 Türkçe