Einführung in Zeichenflächen in Swing. [] (Java, Swing, Koordinaten, Pixel,), Lektion, Seite 721765
http://www.purl.org/stefan_ram/pub/java_swing_zeichenflaechen_de ist die kanonische URI dieser Seite.
Stefan Ram

Swing -Flächenkoordinaten

Beim Zeichnen in eine Graphikfläche wird der Ort und die Ausdehnungen des zu Zeichnenden durch Zahlenwerte  bestimmt. Das System (die Regel) zur Zuordnung von Orten zu Zahlenwerten nennt man ein Koordinatensystem.

Swing  legt ein Modell eines graphischen Ausgabegerätes zugrunde, dessen Zeichenflächen aus Pixeln  bestehen. Hierbei handelt es sich um kleine Rechtecke, aus denen die gesamte Zeichenfläche besteht. Jedes Pixel hat ein bestimmte einheitliche Farbe, es ist also nicht möglich, daß Teile eines Pixel unterschiedliche Farben haben.

Eine Zeichenflaeche mit neun Pixeln
.-----------------------------------. 
| |:::::::::::| | 
| |:::::::::::| | 
| |:::::::::::| | 
|-----------------------------------| 
| |###########|:::::::::::| 
| |###########|:::::::::::| 
| |###########|:::::::::::| 
|-----------------------------------| 
| |###########|:::::::::::| 
| |###########|:::::::::::| 
| |###########|:::::::::::| 
'-----------------------------------'

In einer rechteckigen Graphikfläche wird eine Variante eines kartesischen (rechtwinkligen) Koordinatensystems verwendet. Jeder Ort wird dabei durch zwei Zahlen  gekennzeichnet.

Die erste Zahl ist die x‑Koordinate  (waagerechte Ortskennzahl), sie gibt den Abstand des Ortes vom linken Rand der rechteckigen Graphikfläche an und wird nach rechts hin größer.

Die x-Koordinate
linker 
Rand 
 

| positive 
| x-Koordinate Ort 
| 27 
|<------------------------>o 



|

Die zweite Zahl ist die y‑Koordinate  (senkrechte Ortskennzahl), sie gibt den Abstand des Ortes vom oberen Rand der rechteckigen Graphikfläche an und wird nach unten hin größer.

Die y-Koordinate
oberer  ---------------------------------------------- 
Rand ^ 

| positive 
| y-Koordinate 
| 7 

o Ort

Zu einem bestimmten Punkt der Graphikfläche gehört also immer ein bestimmtes Zahlenpaar.

Koordinaten eines Punktes
  .---------------------------------------------  oberer Rand 
| ^ 
| | 
| | positive 
| | y-Koordinate 
| | 7 
| v 
|<------------------------>o  
| positive x-Koordinate 27 Ort = 
| ( 27, 7 ) 



 
linker 
Rand

Diese Koordinaten eines Punktes werden auch als 2-Tupel (Paar) geschrieben, indem in runden Klammern (seltener: spitzen Klammern) zuerst die x-Koordinate und dann die y-Koordinate angegeben wird. Die Koordinaten werden häufig durch Kommas  getrennt; doch wenn, wie im Deutschen, Dezimalbrüche selber Kommas enthalten, ist es eindeutiger, ein Semikolon  als Trennzeichen zu verwenden. So bedeutet das Paar "( 4,3; 5 )" also die x‑Koordinate 4,3 und die y‑Koordinate 5. In Programmiersprachen verwendet man aber meistens die Schreibweise mit einem Dezimalpunkt, so daß in Zusammenhang mit Programmiersprachen doch wieder auch das Komma verwendet werden kann, etwa wie bei dem Paar "( 4.3, 5 )".

Die Koordinaten eines Pixels sind die Koordinaten seines linken oberen Eckpunktes. In der Abbildung "Eine Zeichenflaeche mit neun Pixeln (1) " ist dieser Punkt durch einen kleinen Kreis "o" dargestellt.

Eine Zeichenflaeche mit zwoelf Pixeln (1)
            ------------------------------------> 
Spalte 0 Spalte 1 Spalte 2 
 
| o-----------o-----------o-----------. ----- oberer Rand 
| Zeile 0 | Pixel | Pixel | Pixel | ^ 
| | ( 0; 0 ) | ( 1; 0 ) | ( 2; 0 ) | | 
| | | | | | 
| o-----------o-----------o-----------| | 
| Zeile 1 | Pixel | Pixel | Pixel | |  
| | ( 0; 1 ) | ( 1; 1 ) | ( 2; 1 ) | |  
| | | | | | Hoehe 
| o-----------o-----------o-----------| | 4 
| Zeile 2 | Pixel | Pixel | Pixel | | 
| | ( 0; 2 ) | ( 1; 2 ) | ( 2; 2 ) | | 
| | | | | | 
| o-----------o-----------o-----------| | 
| Zeile 3 | Pixel | Pixel | Pixel | | 
| | ( 0; 3 ) | ( 1; 3 ) | ( 2; 3 ) | | 
| | | | | v 
V '-----------------------------------' ---
|<--------------------------------->| 
Breite 3 
linker Rand

Das Koordinatenpaar des linken oberen Pixels ist also stets das Paar "(0; 0)", egal welches seine Größe ist. Die Breite  einer Zeichenfläche ist durch die Anzahl der waagerecht nebeneinanderliegenden Pixel (Spalten) gegeben, die Tiefe  durch die Anzahl der senkrecht untereinanderliegenden Pixel (Zeilen). Obwohl man die y‑Koordinate nach unten zählt, nennt man aus alter Gewohnheit von klassischen Koordinatensystemen, bei denen die y-Koordinate nach oben hin zunimmt, die Tiefe einer Fläche doch üblicherweise ihre Höhe. Eine Zeichenfläche hat also eine Breite und eine Höhe (Engl.: width  bzw. height ).

Das Koordinatensystem einer digitalen Zeichenfläche wird oft so gewählt, daß die Koordinaten jedes Pixels ganzzahlig  sind und zu allen Paaren ganzer Zahlen aus einem bestimmten Bereich ein Pixel gehört.

Die größtmögliche x-Koordinate eines Pixels auf einer Zeichenfläche der Breite "width " ist nicht etwa "width ", sondern "width  - 1".

So ist die größte x-Koordinate einer Zeichenfläche mit der Breite Drei die Koordinate Zwei: Da die kleinste x-Koordinate nämlich Null ist, gibt es dann insgesamt drei mögliche x-Koordinatenwerte, nämlich Null, Eins und Zwei. Entsprechendes gilt auch für die y-Koordinate.

Die Fläche "Flaeche1" der Abbildung hat die Breite 10 und die Höhe 6. Die x‑Koordinate der in ihr enthaltenen Pixel liegt im Bereich von 0 bis 9, dies sind 10 verschiedene Werte (Spalten).

Flaeche1 mit width = 10 und height = 6 [Komponentenflaeche]
    0123456789 (x)
0 o········r 60 Pixel 
1 ·········· 6 Zeilen 
2 ·········· 10 Spalten 
3 ·········· 
4 ·········· 
5 u········e <- height - 1
(y) ^ 

width - 1

Koordinaten einiger Pixel [Tabelle]
"Name", "x",  "y".
"o", "0", "0". 
"r", "9", "0". 
"u", "0", "5". 
"e", "9", "5".

Falls Breite und Tiefe größer als Eins ist, dann hat die Komponentenfläche ganz links oben ein Pixel "o". Der ganz links oben befindliche Punkt dieses Pixels "o" hat die Breiten-Koordinate 0 und die Tiefen-Koordinate 0. Dementsprechend hat das Pixel "o" insgesamt die Koordinaten "( 0; 0 )". Die Koordinaten des ganz rechts unten befindlichen Pixels "x" einer Zeichenfläche der Breite "width " und der Höhe "height " kann man allgemein auch als "( width  - 1; height  - 1 )" schreiben. Die x-Koordinaten der Pixel einer Zeichenfläche der Breite "width " reichen also von 0 (einschließlich) bis "width  - 1" (einschließlich), die y-Koordinaten der Pixel einer Zeichenfläche der Höhe "height " reichen von 0 (einschließlich) bis "height  - 1" (einschließlich).

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Netzpostadresse von Stefan Ram: "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen)   |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz