DOMPoint

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

注意:此功能在 Web Workers 中可用。

DOMPoint 对象表示坐标系中的二维或三维点;它包含多达三个维度的坐标值,以及一个可选的透视值。DOMPoint 基于 DOMPointReadOnly,但允许更改其属性的值。

通常,正 x 分量表示原点右侧的位置,正 y 分量表示原点向下的位置,正 z 分量表示从屏幕向外的延伸(换句话说,朝向用户)。

DOMPointReadOnly DOMPoint

构造函数

DOMPoint()

通过提供零个或多个坐标分量的值以及可选的 w 透视值,创建并返回一个新的 DOMPoint 对象。您也可以通过调用 DOMPoint.fromPoint() 静态方法,使用现有的 DOMPointDOMPointReadOnly 或对象来创建新点。

实例属性

DOMPoint 也可能从其父级 DOMPointReadOnly 继承属性。

DOMPoint.x

DOMPointx 坐标。

DOMPoint.y

DOMPointy 坐标。

DOMPoint.z

DOMPointz 坐标。

DOMPoint.w

DOMPoint 的透视值。

实例方法

DOMPoint 从其父级 DOMPointReadOnly 继承实例方法。

静态方法

DOMPoint 也可能从其父级 DOMPointReadOnly 继承静态方法。

DOMPoint.fromPoint()

通过现有的点(或包含匹配属性的对象)创建新的可变 DOMPoint 对象,该对象为其属性提供值。

示例

WebXR 设备 API 中,DOMPointReadOnly 值表示位置和方向。在以下代码片段中,可以通过在 XRSession 动画帧期间调用 XRFrame.getViewerPose() 来检索 XR 设备(如 VR 头显或具有 AR 功能的手机)的姿势,然后访问生成的 XRPosetransform 属性,该属性包含两个 DOMPointReadOnly 属性:表示向量的 position 和表示四元数的 orientation

js
function onXRFrame(time, xrFrame) {
  let viewerPose = xrFrame.getViewerPose(xrReferenceSpace);

  if (viewerPose) {
    let position = viewerPose.transform.position;
    let orientation = viewerPose.transform.orientation;

    console.log(
      `XR Viewer Position: {x: ${roundToTwo(position.x)}, y: ${roundToTwo(
        position.y,
      )}, z: ${roundToTwo(position.z)}`,
    );

    console.log(
      `XR Viewer Orientation: {x: ${roundToTwo(orientation.x)}, y: ${roundToTwo(
        orientation.y,
      )}, z: ${roundToTwo(orientation.z)}, w: ${roundToTwo(orientation.w)}`,
    );
  }
}

规范

规范
Geometry Interfaces Module Level 1
# DOMPoint

浏览器兼容性

另见