Die Uhr

[Startseite]


Programmgesteuertes Zeichnen ] Freihandzeichnen ] Das Ballprojekt ] Autorennen ] Weitere Beispiele ] Der Zug ] n-Damen-Problem ] Drucken mit stiftUndCo ] Türme von Hanoi ]
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();
		}

	}
}
 

 


Seitenanfang

© Georg Dick