XRRigidTransform - 表示通过位置和方向描述的 3D 几何变换
XRRigidTransform
是 WebXR API 接口,表示通过位置和方向描述的 3D 几何变换。
XRRigidTransform
用于指定整个 WebXR API 的转换,包括:
- 与
getOffsetReferenceSpace()
创建新参考空间时要使用的相对于父参考空间的偏移和方向。 XRView
的transform
。XRPose
的transform
。XRReferenceSpaceEvent
事件的transform
属性,如reset
XRReferenceSpace
收到的事件。
在这些地方使用 XRRigidTransform
而不是提供矩阵数据的原始数组的优点是 XRRigidTransform
会自动执行类似计算逆变换的操作。更好的是,一旦对它进行了计算,就对其进行了缓存,以便随后的请求明显更快。
构造函数
new XRRigidTransform()
创建一个新的 XRRigidTransform
对象,该对象表示应用指定位置和 / 或方向的变换。
属性
XRRigidTransform.position
只读
一个 DOMPointReadOnly
,指定一个以米为单位的 3 维点,描述了转换的平移分量。w
属性始终为 1.0。
XRRigidTransform.orientation
只读
一个 DOMPointReadOnly
,它包含描述转换的旋转分量的单元四元数。作为单位四元数,其长度始终为 1.0
。
XRRigidTransform.matrix
只读
一个 Float32Array
,包含了 16 个元素,表示转换矩阵。有关如何使用数组表示矩阵的信息,请参见矩阵格式。
XRRigidTransform.inverse
只读
返回一个 XRRigidTransform
,它是此变换的逆过程。也就是说,如果将其应用于先前已通过原始变换进行了变换的对象,它将撤消该变换并返回原始对象。
使用注意
解释 XRRigidTransform
时,始终在应用位置之前将方向应用于受影响的对象。
实例
此代码段创建一个 XRRigidTransform
,以指定相对于当前参考空间的偏移量和方向,以便在创建新的引用空间时使用。然后,它通过调用会话的 requestAnimationFrame()
方法来请求第一个动画帧回调。
xrSession.requestReferenceSpace(refSpaceType)
.then((refSpace) => {
xrReferenceSpace = refSpace;
xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(
new XRRigidTransform(viewerStartPosition, cubeOrientation));
animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
规范
规范 | 状态 | 备注 |
---|---|---|
WebXR Device API XRRigidTransform 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
XRRigidTransform() 构造函数 | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
inverse | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
matrix | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
orientation | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
position | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
XRRigidTransform() 构造函数 | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
inverse | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
matrix | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
orientation | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
position | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |