16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

Geometrische Objekte<br />

<strong>Java</strong>2D unterschei<strong>de</strong>t folgen<strong>de</strong> geometrische Objekte:<br />

- Shapes: beliebige offene o<strong>de</strong>r geschlossene Figuren, zusammengesetzt aus Folgen von L<strong>in</strong><strong>in</strong>en und<br />

Kurvensegmenten.<br />

- Text: Text <strong>in</strong> vorhert festgelegtem Zeichensatz (Zeichen s<strong>in</strong>d als Shapes <strong>de</strong>f<strong>in</strong>iert)<br />

- Image (rechteckiger Ausschnitt e<strong>in</strong>er Bitmap).<br />

Je<strong>de</strong>m geometrischen Objekt (Punkt, Klasse, Rechteck) ist e<strong>in</strong> <strong>Java</strong>-Klasse<br />

zugeordnet. Das konkrete Aussehen <strong>de</strong>s Objekts (Farbe, Umriss) wird erst bei <strong>de</strong>r<br />

Darstellung festgelegt. Die Darstellung erfolgt über e<strong>in</strong>en Rasterisierer 257 , <strong>de</strong>r<br />

Kompositionsvorschriften für kont<strong>in</strong>uierliche geometrische Objekte <strong>in</strong><br />

Weltkoord<strong>in</strong>aten über e<strong>in</strong> diskretes Raster umsetzt.<br />

Allgeme<strong>in</strong>e Vorgehensweise<br />

1. Setzen von Graphikattributen (ren<strong>de</strong>r<strong>in</strong>g attributes) wie L<strong>in</strong>ientyp, Füllmuster (auch<br />

komplexe Gradienten).<br />

2. Def<strong>in</strong>ition <strong>de</strong>r Form, e<strong>in</strong>er Zeichenkette (auszugeben<strong>de</strong>r Text) o<strong>de</strong>r e<strong>in</strong>es Bilds.<br />

3. Anwendung e<strong>in</strong>er Transformation (z.B. Bild verzerren o<strong>de</strong>r Filtern, Text drehen<br />

etc.).<br />

4. Ausgabe e<strong>in</strong>es graphischen Elements (z.B. durch die Graphics2D-Metho<strong>de</strong>n<br />

draw(), drawImage(), drawRectangle() o<strong>de</strong>r fill().<br />

Die eigentliche Ausgabe erfolgt <strong>in</strong> 4 Schritten:<br />

1. Das Objekt wird <strong>in</strong> Grafikprimitive umgewan<strong>de</strong>lt und auf <strong>de</strong>n Koord<strong>in</strong>atenraum <strong>de</strong>s Ausgabegerätes<br />

(<strong>de</strong>vice space) abgebil<strong>de</strong>t.<br />

- Han<strong>de</strong>lt es sich um e<strong>in</strong>e Form (Shape), so wer<strong>de</strong>n die <strong>in</strong> <strong>de</strong>r Form enthaltenen Graphikelemente<br />

bestimmt.<br />

- Han<strong>de</strong>lt es sich um e<strong>in</strong>en Text, wird die Form <strong>de</strong>r Buchstaben (Glyphen) aus <strong>de</strong>r Schrift<strong>in</strong>formation<br />

bestimmt und <strong>in</strong> e<strong>in</strong>en Umriß (outl<strong>in</strong>e) umgewan<strong>de</strong>lt, <strong>de</strong>r sich als Shape-Objekt beschreiben lässt.<br />

- Bei Bil<strong>de</strong>rn (images) wird ihre Bound<strong>in</strong>g Box <strong>in</strong> Device-Koord<strong>in</strong>aten umgewan<strong>de</strong>lt (unter<br />

Verwendung <strong>de</strong>r im Programm angegebenen Transformationen <strong>de</strong>s Graphics2D-Kontextes)<br />

2. Der aktuelle clipp<strong>in</strong>g path schränkt die Darstellungsoperation (ren<strong>de</strong>r<strong>in</strong>g operation) e<strong>in</strong>. E<strong>in</strong><br />

clipp<strong>in</strong>g path kann je<strong>de</strong> Form annehmen, die sich durch e<strong>in</strong> Shape-Objekt beschreiben lässt.<br />

Normalerweise han<strong>de</strong>lt es sich um <strong>de</strong>n Bereich <strong>de</strong>r gera<strong>de</strong> tatsächlich gezeichnet wer<strong>de</strong>n kann (z.B.<br />

sichtbare Fläche e<strong>in</strong>es Fensters).<br />

3. Die Ausgabefarbe wird bestimmt (aus <strong>de</strong>n Bilddaten bei Bil<strong>de</strong>rn, aus <strong>de</strong>m aktuellen Pa<strong>in</strong>t- o<strong>de</strong>r<br />

Color-Objekt <strong>in</strong> allen an<strong>de</strong>ren Fällen.<br />

4. Die Farbe wird aus das auszugeben<strong>de</strong> Objekt angewandt.<br />

<strong>Java</strong> 2D API-Klassen 258<br />

Außer <strong>de</strong>r Klasse java.awt.Graphics2D umfaßt <strong>Java</strong> 2D API Klassen <strong>in</strong> <strong>de</strong>n<br />

Paketen java.awt.geom (geometrische Formen, Pfa<strong>de</strong> und Transformationen),<br />

257 Die kont<strong>in</strong>uierlichen Shapes (z.B. e<strong>in</strong> Kreis) wer<strong>de</strong>n vom Rasterisierer <strong>in</strong> diskrete Rasterbelegungen<br />

umgewan<strong>de</strong>lt. Man unterschei<strong>de</strong>t Rasterisierung mit o<strong>de</strong>r ohne Alias<strong>in</strong>g:<br />

258 pr43210<br />

291

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!