Class Quaternion

Class 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

EnumerationsEnumerations
new Quaternion()Kimlik kuaterni oluşturur (1, 0, 0, 0).
new Quaternion(w, x, y, z)Açık bileşenlerden bir kuaterni oluşturur.

Enumerations

EnumerationsEnumerationsEnumerations
wnumberSkaler (gerçek) bileşen. Bir birim dönüş kuaterni için, w = cos(θ/2).
xnumberVektör kısmının X bileşeni.
ynumberVektör kısmının Y bileşeni.
znumberVektör kısmının Z bileşeni.
lengthnumber (salt okunur)Büyüklük: sqrt(w² + x² + y² + z²). Geçerli bir dönüş kuaterniyonu için 1.0 olmalıdır.

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

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)

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

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

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)

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

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

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

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

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