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.