Hallo,
ich bin kürzlich auf die Klasse AffineTransform und hab damit etwas rumexperimentiert. Dabei ist mir folgende Merkwürdigkeit aufgefallen:
Ich hätte erwartet, dass mit at1 jetzt Punkte erst skaliert und dann verschoben werden. Tatsächlich ist es aber genau umgekehrt (d.h. es wird erst verschoben, dann skaliert, was natürlich zu unterschiedlichen Ergebnissen führt). Das bestätigt auch die API-Doc. Um die von mir beabsichtigte Reihenfolge zu erhalten, muss ich folgendes machen:
Meine Frage dazu: gibts einen Grund, die Reihenfolge quasi rückwärts aufzubauen oder verstehe ich nur irgendwas nicht richtig. Jedenfalls finde ich das so wie es ist verwirrend.
ich bin kürzlich auf die Klasse AffineTransform und hab damit etwas rumexperimentiert. Dabei ist mir folgende Merkwürdigkeit aufgefallen:
Java:
AffineTransform at1 = new AffineTransform();
at1.scale(2, 2);
at1.translate(5, 5);
Java:
AffineTransform at2 = new AffineTransform();
at2.preConcatenate(AffineTransform.getScaleInstance(2, 2));
at2.preConcatenate(AffineTransform.getTranslateInstance(5, 5));
Meine Frage dazu: gibts einen Grund, die Reihenfolge quasi rückwärts aufzubauen oder verstehe ich nur irgendwas nicht richtig. Jedenfalls finde ich das so wie es ist verwirrend.