sorry, here is the attachement ..
herbert
--
[EMAIL PROTECTED]
http://www.perce.de
#LyX 1.1 Copyright 1995-1999 Matthias Ettrich and the LyX Team
\lyxformat 2.15
\textclass scrartcl
\begin_preamble
\RequirePackage{boxedminipage}
\RequirePackage{multicol}
\RequirePackage{dsfont}
\usepackage{listings}
\usepackage{verbatim}
%\newcommand{\listing}[1]{\footnotesize \verbatiminput{#1} \normalsize}
%\newenvironment{rahmen}[1]{\begin{center}\begin{boxedminipage}[t]{#1}}
{\end{boxedminipage}\end{center}}
%\newenvironment{definition}[1]{\begin{rahmen}{16cm} \bf Definition #1: \rm}
{\end{rahmen}}
%
%\newcounter{lst_counter}
%\newcommand{\lst}[2]{\vspace{0.5cm}\noindent \refstepcounter{lst_counter} \bf Listing
\arabic{chapter}-\arabic{lst_counter}\hspace{0.2cm}\rm #2\lstinputlisting{#1}\indent}
%\newtheorem{definition}{Definition}[section]
%\newcommand{\tabelle}[2]{\vspace{0.5cm}\noindent \refstepcounter{table} \bf\ Tabelle
\arabic{chapter}-\arabic{table}\hspace{0.2cm}\rm #2\listing{#1}\indent}
%\newcommand{\exor}{$\mbox{\stackrel{e}{\vee }$}
%\newcommand{\lstzeile}[1]{\vspace{0.1cm}\noindent \tt \small
#1\normalsize\rm\indent\vspace{0.1cm}}
%\newcommand{\lstwort}[1]{\tt \small #1\normalsize\rm}
%\newenvironment{zitat}{\begin{quotation}\small}{\normalsize\end{quotation}}
\usepackage{rotating}
\end_preamble
\options htb
\language german
\inputencoding latin1
\fontscheme default
\graphics default
\paperfontsize 11
\spacing single
\papersize a4paper
\paperpackage a4
\use_geometry 1
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout LaTeX
\backslash
lstset{basicstyle=
\backslash
scriptsize,keywordstyle=
\backslash
bfseries,nonkeywordstyle={},blankstring=true,labelstyle=
\backslash
tiny,labelstep=1,indent=2em,language=Java}
\layout Title
Grafik unter Java
\layout Author
Herbert Vo�
\layout Standard
\latex latex
\backslash
footnotetext{
\latex default
Herbert Voss, Wasgenstrasse 21, D-14129 Berlin
\layout Standard
[EMAIL PROTECTED]
\layout Standard
http://www.perce.de/voss
\latex latex
}
\layout Standard
\begin_inset LatexCommand \tableofcontents{}
\end_inset
\layout Section
Einf�hrung
\layout Standard
Mit dem
\series bold
A
\series default
bstract
\series bold
W
\series default
indow
\series bold
T
\series default
oolkit
\begin_inset LatexCommand \index{Abstract Window Toolkit}
\end_inset
\begin_float footnote
\layout Standard
Es finden sich auch andere Bezeichnungen, z.B.
Application Window Tool.
\end_float
steht eine riesige Sammlung an m�glichen Moduln zur grafischen Darstellung
unter X-Windows
\begin_inset LatexCommand \index{X-Windows}
\end_inset
zur Verf�gung.
Eine ausf�hrliche Beschreibung der Klassen und Methoden erh�lt man �ber:
\emph on
\begin_inset LatexCommand \url{http://java.sun.com/products/jdk/1.1/}
\end_inset
\emph default
f�r das JDK der Versionen 1.0 bis 1.1.8 bzw.
\emph on
\begin_inset LatexCommand \url{http://java.sun.com/jdk/}
\end_inset
\emph default
f�r die Java-2 Platformen (Versionen ab 1.2).
Auf der dortigen SUN
\begin_inset LatexCommand \index{SUN}
\end_inset
-Homepage steht auch das frei verf�gbare JDK
\begin_float footnote
\layout Standard
JDK: Java Development Kit (auch Java Developers Kit)
\end_float
\begin_inset LatexCommand \index{JDK}
\end_inset
1.1.8 bzw.
die zur Zeit neueste Version 1.3
\begin_float footnote
\layout Standard
auch als Java 2 bezeichnet.
\end_float
f�r die unterschiedlichsten Systemplattformen kostenlos zum Download bereit,
wobei angepasste Linux-Versionen unter
\begin_inset LatexCommand \url{http://www.blackdown.org}
\end_inset
zu bekommen sind
\begin_float footnote
\layout Standard
SUN bietet im Prinzip nur Solaris und Windows-Versionen an.
\end_float
.
Eine Beschreibung der vielfach angewendeteten Swing-Connection findet man
unter anderem auf
\begin_inset LatexCommand \url{http://java.sun.com/products/jfc/tsc/index.html}
\end_inset
oder in [Deitel].
Diese erfordert jedoch mindestens ein JDK 2.
Bei den meisten der g�ngigen Linux-Distributionen oder den beiliegenden
Java-CD's diverser Computerb�cher und -zeitschriften ist ein JDK ohnehin
standardm��ig dabei, allerdings selten die neueste Version.
\layout Standard
In diesem Artikel soll es prim�r nicht um die Anwendung des AWT
\begin_inset LatexCommand \index{AWT}
\end_inset
gehen, sondern um eine entsprechende Erweiterung.
Dabei soll die Programmiersprache Java
\begin_inset LatexCommand \index{Java}
\end_inset
nicht im Vordergrund stehen, sondern einzelne Algorithmen, wie z.B.
die Projektion einer 3D-Ebene
\begin_inset LatexCommand \index{3D-Ebene}
\end_inset
auf eine 2D-Zeichenfl�che
\begin_inset LatexCommand \index{2D-Zeichenfl�che}
\end_inset
.
Letztlich lassen sich aber alle hier angegebenen Algorithmen auf alle anderen
Sprachen �bertragen.
\layout Section
Eine einfache Anwendung
\layout Standard
Eine einfache Klasse, die das AWT-package
\begin_inset LatexCommand \index{AWT-package}
\end_inset
anwendet, l�sst sich wie Algorithmus
\begin_inset LatexCommand \ref{awt0}
\end_inset
zeigt, sehr einfach realisieren.
Noch einfacher ist ein Dialogfenster mit Java-Swing
\begin_inset LatexCommand \index{Swing}
\end_inset
(Abb.
\begin_inset LatexCommand \ref{awt0}
\end_inset
b), denn der Algorithmus besteht faktisch aus einer einzigen Programmzeile
(Alg.
\begin_inset LatexCommand \ref{p-awt0x}
\end_inset
).
\begin_float fig
\layout Standard
\align center
\begin_inset Figure size 198 163
file awt0.ps
subcaption awt0.class
width 1 7.00
flags 9
subfigure
\end_inset
\begin_inset Figure size 142 60
file awt0x.ps
subcaption awt0x - JavaSwing
flags 9
subfigure
\end_inset
\layout Caption
\begin_inset LatexCommand \label{awt0}
\end_inset
Eine erste Anwendung
\end_float
Das Ergebnis w�re ein leeres Grafikfenster
\begin_inset LatexCommand \index{Grafikfenster}
\end_inset
mit dem angegebenen Titel
\begin_inset Quotes eld
\end_inset
awt0 - Test
\begin_inset Quotes erd
\end_inset
(vgl.
Abb.
\begin_inset LatexCommand \ref{p-awt0}
\end_inset
a).
Exemplarisch sollen kurz die einzelnen Teile des Alogorithmus erkl�rt werden.
Mit
\family typewriter
\size small
import
\begin_inset LatexCommand \index{import}
\end_inset
\family default
\size default
werden die entsprechenden Java-Klassen
\begin_inset LatexCommand \index{Java-Klassen}
\end_inset
importiert, hier eben alle notwendigen AWT-Klassen
\begin_inset LatexCommand \index{AWT-Klassen}
\end_inset
, wobei der Java-Compiler automatisch nur die Klassen ausw�hlt, die ben�tigt
werden.
Zeile 2 definiert den Namen der Klasse
\family typewriter
\size small
awt0
\family default
\size default
sowie die Festlegung, dass mit
\family typewriter
\size small
awt0
\family default
\size default
die Klasse
\family typewriter
\size small
Frame
\begin_inset LatexCommand \index{Frame}
\end_inset
\family default
\size default
(Klasse des AWT
\begin_inset LatexCommand \index{AWT}
\end_inset
)
\begin_float footnote
\layout Standard
vgl.
Tab.
\begin_inset LatexCommand \ref{awt-klasse}
\end_inset
\end_float
erweitert werden soll, d.h.
\family typewriter
\size small
awt0
\family default
\size default
erbt alle Eigenschaften von
\family typewriter
\size small
Frame
\family default
\size default
, welche wiederum eine Erweiterung der Klasse
\family typewriter
\size small
Window
\begin_inset LatexCommand \index{Window}
\end_inset
\begin_float footnote
\layout Standard
\family typewriter
\size footnotesize
Window
\family default
\size default
stellt lediglich das Fenster zur Verf�gung, ohne Rahmen und Men�leiste
und ist selbst eine Erweiterung der Klasse
\family typewriter
\size footnotesize
Container
\family default
\size default
(siehe Abb.
\begin_inset LatexCommand \ref{awt-klasse}
\end_inset
)
\end_float
ist.
Den Aufbau der AWT-Klassenhierarchie
\begin_inset LatexCommand \index{AWT-Klassenhierarchie}
\end_inset
zeigt Tab.
\begin_inset LatexCommand \ref{awt-klasse}
\end_inset
.
\begin_float tab
\layout Standard
\align center \LyXTable
multicol5
5 5 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
8 0 1 "" ""
8 0 1 "" ""
1 8 1 1 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
1 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
1 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
Object
\begin_inset LatexCommand \index{Object}
\end_inset
\newline
Component
\begin_inset LatexCommand \index{Component}
\end_inset
\newline
Container
\begin_inset LatexCommand \index{Container}
\end_inset
\newline
Button
\begin_inset LatexCommand \index{Button}
\end_inset
\newline
Label
\begin_inset LatexCommand \index{Label}
\end_inset
\newline
Scrollbar
\begin_inset LatexCommand \index{Scrollbar}
\end_inset
\newline
Window
\begin_inset LatexCommand \index{Window}
\end_inset
\newline
Panel
\begin_inset LatexCommand \index{Panel}
\end_inset
\newline
\newline
\newline
\newline
Frame
\begin_inset LatexCommand \index{Frame}
\end_inset
\newline
Applet
\begin_inset LatexCommand \index{Applet}
\end_inset
\newline
\newline
\newline
\layout Caption
\begin_inset LatexCommand \label{awt-klasse}
\end_inset
AWT-Klassenhierarchie
\end_float
\layout Standard
Jede Java-Application
\begin_inset LatexCommand \index{Java-Application}
\end_inset
\series bold
muss
\series default
zwingend eine Methode
\family typewriter
\size small
main
\family default
\size default
(Zeilen 3-10) enthalten, da der Algorithmus sonst nicht gestartet werden
kann
\begin_float footnote
\layout Standard
Bei Applets ist dies die Methode
\family typewriter
init()
\family default
, vergleiche auch Kap.
\begin_inset LatexCommand \ref{Applet}
\end_inset
\end_float
:
\layout LaTeX
\backslash
begin{tabbing}
\backslash
hspace{3cm}
\backslash
=
\backslash
\backslash
\layout Standard
\family typewriter
\size small
main:
\begin_inset LatexCommand \index{main}
\end_inset
\family default
\size default
\latex latex
\backslash
>
\latex default
ist die Startmethode f�r jede Java- Applikation;
\latex latex
\backslash
\backslash
\layout Standard
\family typewriter
\size small
public:
\begin_inset LatexCommand \index{public}
\end_inset
\family default
\size default
\latex latex
\backslash
>
\family typewriter
\size small
\latex default
main
\family default
\size default
muss �ffentlich sein,d.h.
au�erhalb des Packages verf�gbar;
\latex latex
\backslash
\backslash
\layout Standard
\family typewriter
\size small
static:
\begin_inset LatexCommand \index{static}
\end_inset
\family default
\size default
\latex latex
\backslash
>
\family typewriter
\size small
\latex default
main
\family default
\size default
ist eine Klassenmethode (und damit der aufrufenden Programm-Klasse
\latex latex
\backslash
\backslash
\backslash
>
\family typewriter
\size small
\latex default
public class programm
\family default
\size default
verf�gbar - es wird keine Instanz der Programmklasse
\latex latex
\backslash
\backslash
\backslash
>
\latex default
erzeugt);
\latex latex
\backslash
\backslash
\layout Standard
\family typewriter
\size small
void:
\begin_inset LatexCommand \index{void}
\end_inset
\family default
\size default
\latex latex
\backslash
>
\latex default
main hat keinen R�ckgabewert;
\latex latex
\backslash
\backslash
\layout Standard
\family typewriter
\size small
String
\protected_separator
args[];
\family default
\size default
\latex latex
\backslash
>
\latex default
Array der Klasse
\family typewriter
\size small
String
\family default
\size default
als Eingabeparameterfeld (statt
\family typewriter
\size small
args
\family default
\size default
darf ein beliebig
\latex latex
\backslash
\backslash
\backslash
>
\latex default
anderer zul�ssiger Bezeichner verwendet werden).
\layout LaTeX
\backslash
end{tabbing}
\layout Standard
Die Methode
\family typewriter
\size small
main
\begin_inset LatexCommand \index{main}
\end_inset
\family default
\size default
definiert das neue Objekt
\family typewriter
\size small
app
\family default
\size default
vom Typ
\family typewriter
\size small
awt0
\family default
\size default
(Zeile 5), welches durch die Methode
\family typewriter
\size small
awt0
\family default
\size default
(Zeilen 11-14) realisiert wird.
Mit den Zeilen 6 und 7 werden zum einen die Fenstergr��e festgelegt und
zum anderen veranlasst, dass das Fenster angezeigt wird.
Wird
\family typewriter
\size small
app.setVisible
\begin_inset LatexCommand \index{setVisible}
\end_inset
(false)
\family default
\size default
aufgerufen, so wird nichts angezeigt.
Wird dieser Methodenaufruf ganz entfernt, wird das Programm sofort wieder
beendet, denn es gibt f�r den Algorithmus nichts weiter zu tun.
Die Methode
\family typewriter
\size small
addWindowListener
\begin_inset LatexCommand \index{addWindowListener}
\end_inset
()
\family default
\size default
(Zeilen 8-9) �berwacht Ereignisse, die im Zusammenhang mit dem Fenster
\family typewriter
\size small
app
\family default
\size default
stehen und verl�sst den Algorithmus, falls das Fenster geschlossen wurde.
Die
\family typewriter
\size small
System.out.println
\family default
\size default
\begin_inset LatexCommand \index{System.out.println}
\end_inset
-Aufrufe haben hier nur den Sinn, um auf der x-Konsole den Ablauf des Algorithmu
s besser verfolgen zu k�nnen:
\layout Standard
\family typewriter
\size small
voss@maria:~/Informatik/Java/AWT-Einfuehrung > java awt0
\layout Standard
\family typewriter
\size small
awt0::main()
\layout Standard
\family typewriter
\size small
awt0::awt0(String frameTitle)
\layout Standard
\family typewriter
\size small
awt0::WindowEvent
\layout Standard
\family typewriter
\size small
voss@maria:~/Informatik/Java/AWT-Einfuehrung >
\layout Standard
Nach dem Start der Application
\begin_inset LatexCommand \index{Application}
\end_inset
\family typewriter
\size small
awt0
\family default
\size default
wird erwartungsgem�� zuerst die Methode
\family typewriter
\size small
main()
\family default
\size default
ausgef�hrt, gefolgt von der Instanzierung
\begin_inset LatexCommand \index{Instanzierung}
\end_inset
des Objects
\family typewriter
\size small
awt0(String frameTitle)
\family default
\size default
.
Erst wenn jetzt das Fenster geschlossen wird gibt es eine entsprechende
Meldung.
\family typewriter
\size small
awt0.class
\family default
\size default
hat bislang nichts weiter als ein leeres Fenster erzeugt.
Erst mit den kommenden Klassen wird eine einfache grafische Anwendung,
das Zeichnen einer Normalparabel
\begin_inset LatexCommand \index{Normalparabel}
\end_inset
, durchgef�hrt (vgl.
Abb.
\begin_inset LatexCommand \ref{awt2}
\end_inset
a).
Dazu werden weitere Methoden definiert:
\layout Itemize
\family typewriter
\size small
void MeineAnwendung(Graphics g)
\family default
\size default
: Berechnet bzw.
bestimmt die zu setzenden Bildpunkte, indem die Methode
\family typewriter
\size small
putPixel()
\family default
\size default
aufgerufen wird;
\layout Itemize
\family typewriter
\size small
void setzePixel
\begin_inset LatexCommand \index{setzePixel}
\end_inset
(int x,int y,graphics g)
\family default
\size default
: Setzt f�r die Bildschirmkoordinaten
\begin_inset Formula \( P(x;y) \)
\end_inset
den Bildpunkt in der aktuellen Farbe, wobei dies �ber die Methode
\family typewriter
\size small
drawLine
\begin_inset LatexCommand \index{drawLine}
\end_inset
()
\family default
\size default
erfolgen muss, da Java keine eigene Methode zum Setzen von Pixeln kennt;
\layout Itemize
\family typewriter
\size small
public void paint
\begin_inset LatexCommand \index{paint}
\end_inset
(Graphics g)
\family default
\size default
: Diese Methode wird vom System automatisch aufgerufen und muss daher zwingend
vorhanden sein, wenn eine graphische Ausagbe erfolgen soll.
�bergeben wird dabei das ebenfalls automatisch erzeugte Grafikobject
\family typewriter
\size small
g
\family default
\size default
.
\layout Standard
\begin_float fig
\layout Standard
\align center
\begin_inset Figure size 141 141
file awt2.ps
subcaption Ausgabe bei systemspezifischer Ausrichtung
width 1 5.00
flags 9
subfigure
\end_inset
\begin_inset Figure size 141 141
file awt2a.ps
subcaption Ausgabe mit mathematischer Ausrichtung
width 1 5.00
flags 9
subfigure
\end_inset
\begin_inset Figure size 141 143
file awt2b.ps
subcaption Ber�cksichtigung der Randleiste
width 1 5.00
flags 9
subfigure
\end_inset
\layout Caption
\begin_inset LatexCommand \label{awt2}
\end_inset
Ausgabe des Graphen einer Parabel
\end_float
\layout Subsection
void MeineAnwendung(Graphics g)
\layout Standard
Ein Bildpunkt
\begin_inset LatexCommand \index{Bildpunkt}
\end_inset
entspricht in x-Richtung der mathematischen Einheit, in y-Richtung jedoch
nur
\begin_inset Formula \( \frac{1}{100} \)
\end_inset
der mathematischen Einheit, so dass es sich um die Normalparabel
\begin_inset Formula \( y=x^{2} \)
\end_inset
handelt, wenn dies entsprechend ber�cksichtigt wird.
\layout Subsection
void setzePixel
\begin_inset LatexCommand \index{setzePixel}
\end_inset
(int x,int y,Graphics g)
\layout Standard
Wie bereits oben erw�hnt kennt die Java Graphics-Klasse keine eigene Methode
f�r das Setzen eines Pixels, so dass dies mithilfe der Methode
\family typewriter
\size small
drawLine()
\family default
\size default
erfolgen muss.
\layout Subsection
public void paint
\begin_inset LatexCommand \index{paint}
\end_inset
(Graphics g)
\layout Standard
Die Methode
\family typewriter
\size small
paint(Graphics g)
\family default
\size default
\emph on
\emph default
braucht vom Anwender nicht aufgerufen zu werden, da dies systemspezifisch
automatisch erfolgt.
Damit ist es dem System m�glich, Fensterinhalte immer wieder neu aufzubauen,
wenn man unter X-Windows das aktuelle Fenster verl��t oder sogar auf eine
Textconsole umschaltet.
Auf der x-Konsole kann dies durch entsprechende
\family typewriter
\size small
System.out.println()
\family default
\size default
- Anweisungen verfolgt werden (Zeile 19).
Zeile 20 legt durch
\family typewriter
\size small
translate
\begin_inset LatexCommand \index{translate}
\end_inset
(200,0)
\family default
\size default
fest, dass der Koordinatenursprung nicht bei
\begin_inset Formula \( P(0;0) \)
\end_inset
liegt, sondern bei
\begin_inset Formula \( P_{Neu}(200;0) \)
\end_inset
.
Hierbei l��t Java ohne weiteres negative Koordinaten zu.
Kann also ein Punkt nicht gezeichnet werden, f�hrt dies zu keiner Fehlermeldung
! Auch die
\family typewriter
\size small
translate()
\family default
\size default
-Methode kann den Koordinatenursprung
\begin_inset LatexCommand \index{Koordinatenursprung}
\end_inset
beliebig setzen, also auch ausserhalb des Bildschirms.
Mit Zeile 21 wird der Fensterhintergrund festgelegt und mit Zeile 22 die
Anwendung gestartet.
\layout Section
\begin_inset LatexCommand \label{Applet}
\end_inset
Applikation
\begin_inset LatexCommand \index{Applikation}
\end_inset
und/oder Applet
\begin_inset LatexCommand \index{Applet}
\end_inset
\layout Standard
Der Unterschied zwischen diesen beiden Arten der Javaprogrammierung ist
minimal, denn beides sind Javaprogramme und k�nnen denselben Algorithmus
als Grundlage haben.
Unterschiedlich ist lediglich die Umgebung in der sie ablaufen, Applets
laufen nur in einer Browser
\begin_inset LatexCommand \index{Browser}
\end_inset
-Umgebung bzw.
Appletviewer
\begin_inset LatexCommand \index{Appletviewer}
\end_inset
-Umgebung und Applikationen in einer
\begin_inset Quotes eld
\end_inset
normalen
\begin_inset Quotes erd
\end_inset
Umgebung, d.h.
Textkonsole bzw.
Grafikkonsole, wenn grafische Operationen erfolgen.
Grunds�tzlich ist es auch kein Problem eine Java-Klasse so zu programmieren,
dass diese sowohl als Applet als auch Applikation laufen kann.
Einschr�nkungen gibt es nur hinsichtlich der MEthoden, die aus Sicherheitsgr�nd
en in einem Applet nicht erlaubt sind.
Der
\family typewriter
\size small
main
\family default
\size default
-Methode entspricht die
\family typewriter
\size small
init
\family default
\size default
-Methode beim Applet (Alg.
\begin_inset LatexCommand \ref{p-awt0A}
\end_inset
) .
Die entsprechende Ausgabe im Browser zeigt Abb.
\begin_inset LatexCommand \ref{awt0A.ps}
\end_inset
, die zugeh�rige einfache html-Datei zeigt Alg.
\begin_inset LatexCommand \ref{awtoA.html}
\end_inset
.
\layout Standard
\begin_float fig
\layout Standard
\align center
\begin_inset Figure size 200 163
file applet0.ps
flags 9
\end_inset
\layout Caption
\begin_inset LatexCommand \label{awt0A.ps}
\end_inset
Applet awt0.html
\end_float
\layout Section
Anpassung der Darstellung
\layout Subsection
\begin_inset LatexCommand \label{3.1}
\end_inset
Bildschirmaufl�sungen
\begin_inset LatexCommand \index{Bildschirmaufl�sungen}
\end_inset
\layout Standard
Bei Linien, die nicht vertikal oder horizontal verlaufen, ist in der Regel
mit Verzerrungen
\begin_inset LatexCommand \index{Verzerrungen}
\end_inset
zu rechnen, denn das Bildschirmverh�ltnis von xPixel zu yPixel ist nicht
notwendigerweise immer gleich 1.
Dieses von Pascal bekannte Verh�ltnis
\series bold
xy-Ratio
\begin_inset LatexCommand \index{xy-Ratio}
\end_inset
\series default
betr�gt f�r eine typische 1280*1024-Aufl�sung
\begin_inset Formula \( \frac{1280}{1024}=1,25 \)
\end_inset
, w�hrend ein 17
\begin_inset Quotes erd
\end_inset
-Bildschirm f�r das sogenannte
\emph on
Display Area
\begin_inset LatexCommand \index{Display Area}
\end_inset
\emph default
ein typisches L�ngenverh�ltnis von
\begin_inset Formula \( \frac{30cm}{22,5cm}=1,\overline{3} \)
\end_inset
aufweist.
Somit
\series bold
muss
\series default
es bei bestimmten Aufl�sungen zwangsweise zu Verzerrungen kommen, denn
wie die folgende Tab.
\begin_inset LatexCommand \ref{xy-ratio}
\end_inset
zeigt, haben nicht alle Bildschirmaufl�sungen das gleiche Pixelverh�ltnis
\begin_inset LatexCommand \index{Pixelverh�ltnis}
\end_inset
.
Immer dann, wenn die Grafik ausgedruckt werden muss, erledigt sich dieses
Problem von selbst, denn Drucker verf�gen fast ausnahmslos �ber ein xy-Verh�ltn
is von 1:1, z.B.
ein Laserdrucker
\begin_inset LatexCommand \index{Laserdrucker}
\end_inset
von typisch 300*300 bzw.
600*600 Punkten.
\begin_float tab
\layout Standard
\align center \LyXTable
multicol5
8 3 0 0 -1 -1 -1 -1
1 1 0 0
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
1 8 1 0 0 0 0 "" ""
2 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 1 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
Aufl�sung
\newline
Verh�ltnis
\newline
Breite
\newline
H�he
\newline
\newline
640
\newline
480
\newline
\begin_inset Formula \( 1,\overline{3} \)
\end_inset
\newline
800
\newline
600
\newline
\begin_inset Formula \( 1,\overline{3} \)
\end_inset
\newline
1024
\newline
768
\newline
\begin_inset Formula \( 1,\overline{3} \)
\end_inset
\newline
1152
\newline
870
\newline
\begin_inset Formula \( 1,32 \)
\end_inset
\newline
1280
\newline
1024
\newline
\begin_inset Formula \( 1,25 \)
\end_inset
\newline
1600
\newline
1200
\newline
\begin_inset Formula \( 1,\overline{3} \)
\end_inset
\layout Caption
\begin_inset LatexCommand \label{xy-ratio}
\end_inset
Bildschirmverh�ltnisse
\begin_inset LatexCommand \index{Bildschirmverh�ltnisse}
\end_inset
(Aufl�sung in Pixeln)
\end_float
\layout Subsection
\begin_inset LatexCommand \label{Kap3.1}
\end_inset
Die Bildschirmausrichtung
\begin_inset LatexCommand \index{Bildschirmausrichtung}
\end_inset
\layout Standard
Aus der Abb.
\begin_inset LatexCommand \ref{awt2}
\end_inset
a ist unschwer zu erkennen, dass der Koorinatenursprung
\begin_inset LatexCommand \index{Koorinatenursprung}
\end_inset
des Bildschirms in der oberen linken Ecke liegt und durch
\family typewriter
\size small
translate
\begin_inset LatexCommand \index{translate}
\end_inset
()
\family default
\size default
nur verschoben, aber nicht gespiegelt werden kann, wie dies aber notwendig
w�re, um den Koordinatenursprung allgemein in die l
\layout Bibliography
\bibitem {1}
Geary, D.M.
und McClellan, A.L.: Graphic Java - Das AWT beherrschen,Verlag Heinz Heise,
Hannover 1997
\the_end