Ich verwende Transformationsmatrizen mit JSPDF, um den Ursprung und die Skalierung meiner Zeichnungen zu ändern. setCurrentTransformationMatrix hat keine offizielle Dokumentation von dem, was ich gefunden habe (nun, außer wenn "die aktuelle Transformationsmatrix festlegt" zählt als eine). Matrix hat jedoch eine, die so etwas wie "Erstellt eine Matrix. In JSPDF werden Matrizen rechts angewendet, d. H. Vtransformiert = v x m ". Es wird auch erwähnt, dass: < /p>
Code: Select all
new Matrix(a,b,c,d,e,f)
|ab0|
|cd0|
|ef1|
< /code>
Aber es scheinen etwas zu geben, das ich einfach nicht bekomme. Zum Beispiel habe ich versucht, einen Kreis zu zeichnen, der auf (10.5, 14.85) (auf einem Standard -A4 -Papier) mit der folgenden Transformationsmatrix zentriert ist: < /p>
let doc = jspdf({ unit: "cm" })
let m = doc.Matrix(1,0,0,1.7,0,0)
doc.setCurrentTransformationMatrix(m)
doc.circle(10.5, 14.85, 1)
Ich habe erwartet, dass die Koordinaten des Kreises als x -> x*1 und y -> y*1.7 transformieren und so am unteren Rand der Seite befinden. Es tauchte jedoch tatsächlich oben auf. M = Doc.Matrix (1,0,0,0,3,0,0) schien das richtige Ergebnis zu erzielen, obwohl ich nicht erklären kann, warum. Darüber hinaus gibt es anscheinend keine X-Reversal, da dieses seltsame Verhalten nur die y-Achse beeinflusst. Nehmen Sie f!>