XRRigidTransform: XRRigidTransform() Konstruktor

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Der XRRigidTransform() Konstruktor erstellt ein neues XRRigidTransform-Objekt, das die Position und Orientierung eines Punktes oder Objekts repräsentiert. Unter anderem wird XRRigidTransform verwendet, wenn ein Transform bereitgestellt werden muss, um zwischen Koordinatensystemen in verschiedenen Räumen zu übersetzen.

Syntax

js
new XRRigidTransform()
new XRRigidTransform(position)
new XRRigidTransform(position, orientation)

Parameter

position Optional

Ein Objekt, das die Koordinaten angibt, an denen sich der Punkt oder das Objekt befindet. Diese Dimensionen sind in Metern angegeben. Wenn dieser Parameter weggelassen wird oder ungültig ist, wird die Position {x: 0, y: 0, z: 0, w: 1} angenommen. w muss immer 1 sein.

orientation Optional

Ein Objekt, das die Richtung angibt, in die das Objekt blickt. Der Standardwert für orientation ist {x: 0, y: 0, z: 0, w: 1}. Die angegebene Orientierung wird normalisiert, wenn sie nicht bereits normalisiert ist.

Rückgabewert

Ein neues XRRigidTransform-Objekt, das initialisiert wurde, um eine Transformationsmatrix darzustellen, die die Position und Orientierung eines Objekts vom Ursprung zu der angegebenen position und in die durch orientation angegebene Richtung anpasst.

Ausnahmen

TypeError

Wird ausgelöst, wenn der Wert der w-Koordinate in der angegebenen position nicht 1.0 ist.

Beispiele

In diesem Beispiel wird der Beginn der Animation einer Szene gezeigt, beginnend mit einer Anfrage nach einem Referenzraum eines bestimmten Typs, dann Verschieben des Koordinatensystems basierend auf einem Transform, bevor der erste Animationsframe angefordert wird.

js
let animationFrameRequestID = 0;

xrSession.requestReferenceSpace("local-floor").then((refSpace) => {
  xrReferenceSpace = refSpace.getOffsetReferenceSpace(
    new XRRigidTransform(viewerPosition, viewerOrientation),
  );
  animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});

Nach der Anforderung eines Referenzraums vom Typ local-floor wird das zurückgegebene Versprechen schließlich aufgelöst, zu diesem Zeitpunkt wird ein neues Referenzraumobjekt, refSpace, erhalten. Nachdem ein XRRigidTransform von der Anfangsposition und -orientierung des Betrachters erstellt wurde, übergeben wir den neuen Transform an getOffsetReferenceSpace(), um einen weiteren Referenzraum zu erstellen, der jetzt so versetzt ist, dass sein Ursprung an der gleichen Stelle im Raum wie die von viewerPosition angegebenen Koordinaten liegt, wobei die Orientierung ebenfalls entsprechend angepasst wird.

Dann wird requestAnimationFrame() aufgerufen, um einen neuen Animationsframe zum Zeichnen anzufordern. Der drawFrame()-Rückruf wird ausgeführt, wenn das System bereit ist, den nächsten Frame zu zeichnen.

Weitere Beispiele finden Sie unter Bewegung, Orientierung und Bewegung.

Spezifikationen

Specification
WebXR Device API
# dom-xrrigidtransform-xrrigidtransform

Browser-Kompatibilität

BCD tables only load in the browser