XRRigidTransform

安全上下文:此功能仅在安全上下文 (HTTPS) 中,在某些或所有支持的浏览器 中可用。

XRRigidTransformWebXR API 接口,表示由位置和方向描述的 3D 几何变换。

XRRigidTransform 用于在整个 WebXR API 中指定变换,包括

在这些地方使用 XRRigidTransform 而不是提供矩阵数据的裸数组有一个优点。它会自动计算变换的逆矩阵,甚至会缓存它,从而使后续请求的速度显著提高。

构造函数

XRRigidTransform()

创建一个新的 XRRigidTransform 对象,该对象表示应用指定位置和/或方向的变换。

实例属性

XRRigidTransform.position 只读

一个DOMPointReadOnly,指定一个以米为单位的三维点,描述变换的平移分量。w 属性始终为 1.0

XRRigidTransform.orientation 只读

一个DOMPointReadOnly,其中包含描述变换的旋转分量的单位四元数。作为单位四元数,它的长度始终归一化为 1.0

XRRigidTransform.matrix 只读

以 16 个成员的Float32Array 形式返回变换矩阵。有关数组如何用于表示矩阵,请参见矩阵格式 部分。

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 设备 API
# xrrigidtransform-interface

浏览器兼容性

BCD 表格仅在浏览器中加载