AffineTransform (setToScale)

Status
Nicht offen für weitere Antworten.

r74

Aktives Mitglied
Hallo Forum

Hier mein nächstes Problem:

Ich zeichne zuerst so zu sagen meine Grafik in "Originalgrösse".

Danach möchte ich sie immer auf Fenstergrösse skalieren (das
mach ich mit setToScale). Klappt eigentlich auch.

Nur werden dabei die Linie dicker. Eine Linie hat ja "Breite" Null.
Ich möchte dass dies auch nach der Skalierung so bleibt (d.h.
die Linie nicht dicker wird).

Weiss jemand Rat?

Vielen Dank.
 
G

Guest

Gast
Hallo,

r74 hat gesagt.:
Ich zeichne zuerst so zu sagen meine Grafik in "Originalgrösse".
Danach möchte ich sie immer auf Fenstergrösse skalieren (das
mach ich mit setToScale). Klappt eigentlich auch.
Nur werden dabei die Linie dicker. Eine Linie hat ja "Breite" Null.
Ich möchte dass dies auch nach der Skalierung so bleibt (d.h.
die Linie nicht dicker wird).

... da wir nicht in der Mathematik/Geometrie, sondern in der EDV sind, hat eine Linie mindestens die Breite 1Pixel. Und wenn du vergrößernd skalierst, dann dupliziert der Rechner einzelne Linien des Bildes und fügt sie ein. Der Grad der Skalierung entscheidet dabei nach welchem Schema der Rechner vorgeht. (Un)Passend gewählt kann es auch passieren, daß eine Linie überdick wird während eine ander unverändert bleibt. Das bringt die Ansicht noch stärker durcheinander. Erst eine Linie der Breite 1Pixel von (2,3) nach (100, 273) gelegt, und dann verdoppelt gibt dir eine Linie der Breite 2Pixel von (4, 6) nach (200, 546). Da die Linie schräg verläuft kann es passieren, daß sie manchmal 2Pixel, manchmal wieder 1Pixel breit ist.
Falls du ein großformatiges Bild willst das in dünnen Linien gezeichnet wird, dann mußt du ein leeres Bild vergrößern und die Linien nachträglcih einzeichnen. Tröstend ist dabei die Tatsache, daß sich die Koordinaten gleichermaßen skalieren. Im obigen Beispiel mußt du also eine Linie der Stärke 1Pixel von (4,6) nach (200, 546) legen.
 

r74

Aktives Mitglied
Für wen's interessiert. So hab ich's jetzt gemacht:

Statt eine Linie zeichnen zu lassen und dann zu skalieren werden
der Anfangs- und Endpunkt transformiert und dann die Linie
gezeichnet. That's it!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben