Kochsche Kurve Windmühlen Die Uhr Stifte verfolgen sich |
Uhren
Hier die Quelltexte für das Applet und die Uhr:
/* UhrApplet.java */
import stiftUndCo.*;
public class UhrApplet extends EreignisApplet
{
Uhr uhr1,uhr2;
public void initApplet()
{
uhr1=new Uhr(bildschirm());
uhr1.zeige();
// uhr2=new Uhr(bildschirm(),20,20,10);
// uhr2.zeige();
}
public void bearbeiteAndereEreignisse()
{
uhr1.weiter();
// uhr2.weiter();
}
public void bearbeiteTaste(char t)
{
switch(t){
case 'q' : beenden();break;
case 'w': break;
default:;
}
}
}
/* Uhr.java */
import stiftUndCo.*;
//
//
// Uhr
//
//
public class Uhr
{
private Malflaeche b;
private BuntStift stift;
private double stunde,minute,sekunde,
stundeneu,minuteneu,sekundeneu,radius,xm,ym;
public Uhr(Malflaeche b)
{
this.b=b;
stift = new BuntStift(b);
stunde=Hilfe.stunde();
minute=Hilfe.minute();
sekunde=Hilfe.sekunde();
if (b.hoehe() < b.breite()) { radius = b.hoehe()/2-5;}
else {radius = b.breite()/2-5;}
xm=b.breite()/2;
ym=b.hoehe()/2;
}
public Uhr(Malflaeche b, double x, double y, double r)
{
this.b=b;
stift = new BuntStift(b);
stunde=Hilfe.stunde();
minute=Hilfe.minute();
sekunde=Hilfe.sekunde();
radius=r;
xm=x;
ym=y;
}
public void weiter()
{
stundeneu=Hilfe.stunde();
minuteneu=Hilfe.minute();
sekundeneu=Hilfe.sekunde();
this.loescheZeiger();
stunde=stundeneu;
minute=minuteneu;
sekunde=sekundeneu;
this.zeigeZeiger();
}
public void zeige()
{
stift.normal();
stift.bewegeBis(xm,ym);
stift.zeichneKreis(radius);
zeigeZeiger();
}
public void zeigeZeiger()
{
stift.normal();
stift.hoch();
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-sekunde*6+90);
stift.bewegeUm(radius*0.9);
stift.hoch();
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-minute*6+90);
stift.bewegeUm(radius*0.8);
stift.hoch();
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-stunde*30+90);
stift.bewegeUm(radius*0.8);
stift.hoch();
}
public void loescheZeiger()
{
stift.radiere();
stift.hoch();
if (sekundeneu != sekunde )
{
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-sekunde*6+90);
stift.bewegeUm(radius*0.9);
stift.hoch();
}
if (minuteneu != minute )
{
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-minute*6+90);
stift.bewegeUm(radius*0.8);
stift.hoch();
}
if ( stundeneu != stunde )
{
stift.bewegeBis(xm,ym);
stift.runter();
stift.dreheBis(-stunde*30+90);
stift.bewegeUm(radius*0.8);
stift.hoch();
}
}
}
|