XRRigidTransform

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

XRRigidTransform 是一個 WebXR API 介面,它表示由位置和方向定義的 3D 幾何變換。

XRRigidTransform 用於在 WebXR API 中指定變換,包括:

在這些地方使用 XRRigidTransform 而非提供矩陣資料的裸陣列有一個優點。它會自動計算變換的逆矩陣,甚至進行快取,從而使後續的請求速度顯著提高。

建構函式

XRRigidTransform()

建立一個新的 XRRigidTransform 物件,該物件表示一個應用指定位置和/或方向的變換。

例項屬性

XRRigidTransform.position 只讀

一個 DOMPointReadOnly,指定一個以米為單位的 3D 點,描述變換的平移分量。 w 屬性始終為 1.0

XRRigidTransform.orientation 只讀

一個 DOMPointReadOnly,其中包含一個單位四元數,描述變換的旋轉分量。作為單位四元數,其長度始終歸一化為 1.0

XRRigidTransform.matrix 只讀

以 16 元素 Float32Array 的形式返回變換矩陣。有關如何使用陣列表示矩陣,請參閱 Matrix format 部分。

XRRigidTransform.inverse 只讀

返回一個 XRRigidTransform,它是此變換的逆變換。也就是說,如果將其應用於先前已被原始變換變換過的物件,它將撤銷變換並將物件恢復到原始狀態。

用法說明

當解釋 XRRigidTransform 時,始終先應用方向,然後再應用位置。

示例

此程式碼片段建立一個 XRRigidTransform,用於指定在建立新引用空間時相對於當前引用空間使用的偏移量和方向。然後,它透過呼叫會話的 requestAnimationFrame() 方法來請求第一個動畫幀回撥。

js
xrSession.requestReferenceSpace(refSpaceType).then((refSpace) => {
  xrReferenceSpace = refSpace;
  xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(
    new XRRigidTransform(viewerStartPosition, cubeOrientation),
  );
  animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});

規範

規範
WebXR Device API
# xrrigidtransform-interface

瀏覽器相容性