Javascript: Matrixoperationen für die CSS-Transformationsperspektive

Ich benutzedieses Skript das behauptet, die Matrix3d-Operation wie in @ beschrieben zu implementierthe spec, dem Skript fehlen jedoch Matrix-Perspektiven-Operationen, daher habe ich etwas "gekocht", von dem ich nicht sicher bin, ob es entweder korrekt oder genau ist.

// the perspective matrix to multiply with
CSSMatrix.P,erspective = function(x, y, z){
  var m = new CSSMatrix();
  m.m13 = x;
  m.m23 = y;
  m.m33 = z;
  return m;
};

und die Methode zur Verwendung dieser Matrix

// myMatrix.perspective(x,y,z); to apply a perspective matrix
CSSMatrix.prototype.perspective = function(x, y, z){
  if (y == null) y = 0;
  if (z == null) z = 0;
  return CSSMatrix.multiply(this, CSSMatrix.Perspective(x, y, z));
};

Meine Frage ist, oby undz sindundefined, welche Werte sollten verwendet werden? Wird es so sein, als würde man drehen, wox wird für alle anderen Achsen verwendet oder 0 (Null) wie im obigen Code?

Ich bin mir auch nicht sicher, obCSSMatrix.Perspective Matrix ist richtig geschrieben wie in der Spezifikation beschrieben und in das @ implementieCSSMatrix Prototyp

UPDATE: Ich habe eine andere Implementierung der Perspektivfunktionen gefunden (siehe unten) und ein @ erstellGeig um zu demonstrieren, dass es nicht so gut funktioniert.

CSSMatrix.prototype.perspective = function(d){
  return CSSMatrix.multiply(this, CSSMatrix.Perspective(d));
};
CSSMatrix.Perspective = function(d){
  var m = new CSSMatrix(); 
  m.m43 = -1/d; 
  return m;
};

Warum unterscheiden sich die beiden Werte bitte?

Vielen Dank für jede Antwort.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage