Matrixskalierungsübergang funktioniert nicht

8

Ich muss die Transformationsmatrix verwenden, um die Transformation zu animieren: Maßstab eines Elements.

Ich möchte von 0 bis 1 skalieren. Wenn ich den folgenden Code verwende, funktioniert es richtig:

%Vor%

Ссылка

Wenn ich die Matrix selbst verwende, funktioniert nicht .

%Vor%

Ссылка

Mache ich etwas falsch oder funktioniert das nicht? Ich frage mich, weil es in Chrome und Firefox nicht funktioniert ...

Die console_log Debugausgabe sagt, dass bei der Skalierung von 0 auf 1 die Matrix auch von Matrix (0,0,0,0,0,0) zu Matrix (1,0,0,1,0,0) gesetzt wird .

BEARBEITEN:

Total confusion ... Wenn ich die Werte scaleX und scaleY in der Matrix auf 0.1 oder 0.01 ändere, funktioniert es ... wow

    
yacon 29.05.2015, 11:47
quelle

1 Antwort

2

Beim Transformieren oder Transformieren von Transformationen müssen die Transformationsfunktionslisten interpoliert werden. Zwei Transformationsfunktionen mit demselben Namen und derselben Anzahl von Argumenten werden numerisch ohne eine vorherige Konvertierung interpoliert. Der berechnete Wert hat den gleichen Transformationsfunktionstyp mit der gleichen Anzahl von Argumenten.

Spezielle Regeln gelten für rotate3d (), matrix (), matrix3d ​​() und perspective (). Die Transformationsfunktionen matrix (), matrix3d ​​() und perspective () werden zuerst in 4x4-Matrizen umgewandelt und interpoliert. Wenn eine der Matrizen für die Interpolation singulär oder nicht invertierbar ist (wenn ihre Determinante 0 ist), wird das transformierte Element nicht gerendert und die verwendete Animationsfunktion muss auf eine diskrete Animation gemäß den Regeln der jeweiligen Animationsspezifikation zurückgreifen.

Im Falle der Matrix (0,0,0,0,0,0) ist es offensichtlich, dass die 4X4-Ergebnismatrizen für die Skalierung singular sind

Dankeschön für Ссылка

    
Yandy_Viera 07.06.2015 06:47
quelle