29.01.2014 Aufrufe

Script Java

Script Java

Script Java

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.

7.2 Graphics<br />

//draw clock at position x y with radius r<br />

public void draw(Graphics g, int x, int y, int r) {<br />

// draw circle with diameter = 2*r:<br />

g.drawOval(x,y,2*r,2*r);<br />

// draw minute hand with length = 0.9*r:<br />

g.drawLine(x+r,y+r,<br />

x+r+(int)Math.round(0.9*r*Math.sin(2*Math.PI*minutes/60)),<br />

y+r-(int)Math.round(0.9*r*Math.cos(2*Math.PI*minutes/60)));<br />

// draw hour hand with length = 0.7*r:<br />

g.drawLine(x+r,y+r,<br />

x+r+(int)Math.round<br />

(0.7*r*Math.sin(2*Math.PI*getMinutesAfterMidnight()/720)),<br />

y+r-(int)Math.round<br />

(0.7*r*Math.cos(2*Math.PI*getMinutesAfterMidnight()/720)));<br />

}<br />

In der ersten Anweisung erfolgt ein Aufruf der Methode drawOval(). Diese in der<br />

Klasse Graphics deklarierte Methode erlaubt das Zeichnen von Ellipsen. Die ersten beiden<br />

Parameter geben die Koordinaten der linken oberen Ecke desjenigen Rechtecks an,<br />

welches die Ellipse genau umgibt. Die letzten beiden Parameter beschreiben schliesslich<br />

die Breite und Höhe der Ellipse. Da im Aufruf drawOval() sowohl für die Breite als<br />

auch für die Höhe die gleichen Werte übergeben werden, entsteht ein Kreis. Die linke<br />

obere Ecke dieses Kreises ist an Position (x, y), sein Radius beträgt r pixels (siehe<br />

Abbildung 7-3). Dieser Kreis symbolisiert nun unsere Uhr.<br />

Für das Darstellen der Zeiger der Uhr wird die Methode drawLine() verwendet. Sie<br />

zeichnet eine Linie. Ihre ersten beiden Parameter bezeichnen die Koordinaten des<br />

Startpunktes, die letzten zwei Parameter die Koordinaten des Zielpunktes. Die Koordinaten<br />

des Startpunktes sind sowohl für den Minutenzeiger als auch für den Stundenzeiger<br />

identisch und fallen mit dem Mittelpunkt des Kreises (x+r, y+r) zusammen.<br />

Abbildung 7-3 illustriert, wie man die Koordinaten eines Zeigerendpunktes berechnen<br />

kann. Da wir den Mittelpunkt des Kreises kennen, müssen wir lediglich noch die Strecken<br />

dx und dy ermitteln, um die Koordinaten des Zeigerendpunktes zu erhalten. Für den<br />

dargestellten Fall hat der Zielpunkt dann die x-Koordinate x+r+dx und die y-Koordinate<br />

y+r-dy.<br />

Wenn wir nun annehmen, dass wir den Winkel a kennen, können wir mit Hilfe der<br />

Winkelfunktionen Sinus und Cosinus die Strecken dx und dy berechnen:<br />

Hierbei ist l die Länge des Zeigers.<br />

( )<br />

( )<br />

dx = sin a ∗l<br />

dy = cos a ∗l<br />

Da aufgrund seiner Periodizität der Sinus von einem Winkel zwischen 0 und 180 Grad<br />

bzw. zwischen einem Vielfachen von 360 und einem Vielfachen von 360 plus 180 Grad<br />

immer einen positiven Wert ergibt, erhält man für sämtliche dx, deren Winkel sich in der<br />

rechten Kreishälfte bewegen, einen positiven Wert. Da die x-Werte von links nach rechts<br />

174

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!