XRRigidTransform
XRRigidTransform
是WebXR API 接口,表示由位置和方向描述的 3D 几何变换。
XRRigidTransform
用于在整个 WebXR API 中指定变换,包括
- 使用
getOffsetReferenceSpace()
创建新的参考空间时,相对于父参考空间的偏移量和方向。 transform
of anXRView
.- The
transform
of anXRPose
. - 在
XRReferenceSpaceEvent
事件的transform
属性中,如在reset
事件中,该事件由XRReferenceSpace
接收。
在这些地方使用 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 表格仅在浏览器中加载