Java & JavaScript


Home
Applets
   3D:
 · Würfel
 · Würfel 2
 · Würfel 3
 · Tetraeder
 · Tetraeder 2
 · Dodekaeder
 · Ikosaeder
 · Fußball
 · Kugel
 · Kugel 2
   Fraktale:
 · Apfelmännchen
 · Apfelmännchen 2
 · Apfelmännchen 3
 · Apfelmännchen MA
 · Apfelmännchen Zoom
 · Apfelmännchen Zoom 2
 · Juliamenge
 · Juliamenge MA
 · Julia-Generator
 · Koch-Kurve
 · Koch-Kurve 2
 · Hilbert-Kurve
 · Sierpinski-Dreieck
 · Sierpinski-Dreieck 2
 · Sierpinski-Dreieck 3
 · Sierpinski-Teppich
 · Pythagoras-Baum
 · Lindenmayer-System
 · Lindenmayer-System 2
   Mathematik:
 · Funktionsplotter
 · Eratosthenes-Sieb
 · Miller-Rabin-Test
   Verschiedenes:
 · Morsezeichen-Ticker
 · Analoguhr
Scripts
Gäste
Kontakt

- Applets : Verschiedenes : Analoguhr -


Eine Analoguhr als Java-Applet.


[Eine Analoguhr als Java-Applet zum Download. Das Analog-Uhr-Applet lässt sich allerdings nur mit aktiviertem Java betrachten !]


AnalogUhr.java

import java.awt.*;
import java.applet.*;
import java.util.*;

public class AnalogUhr extends Applet {

    public void init() {
        setBackground(new Color(255,255,255));
    }

    Image buffer;
    Graphics2D gBuffer;

    Calendar date;

    int nn=125, r=100; // Zentrum und Radius

    public void paint(Graphics g) {

        // Double-Buffering
        if (buffer==null) {
            buffer=createImage(this.getSize().width, this.getSize().height);
            gBuffer=(Graphics2D)buffer.getGraphics();
        }
        gBuffer.clearRect(0,0,this.getSize().width, this.getSize().height);

        // Antialiasing
        gBuffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);

        gBuffer.setColor(new Color(0,0,0));
        gBuffer.drawOval(nn-2,nn-2,4,4);

        // Striche bei 3, 6, 9 und 12 Uhr
        for (int i=0;i<4;i++) {
            gBuffer.drawLine(
                nn+(int)((r-7)*Math.cos(Math.toRadians(90*i))),
                nn+(int)((r-7)*Math.sin(Math.toRadians(90*i))),
                nn+(int)(r*Math.cos(Math.toRadians(90*i))),
                nn+(int)(r*Math.sin(Math.toRadians(90*i))));
        }
        // Striche bei jeder Stunde
        for (int i=0;i<12;i++) {
            gBuffer.drawLine(
                nn+(int)((r-5)*Math.cos(Math.toRadians(30*i))),
                nn+(int)((r-5)*Math.sin(Math.toRadians(30*i))),
                nn+(int)(r*Math.cos(Math.toRadians(30*i))),
                nn+(int)(r*Math.sin(Math.toRadians(30*i))));
        }
        // Striche bei jeder Minute (optional)
        for (int i=0;i<60;i++) {
            gBuffer.drawLine(
                nn+(int)((r-2)*Math.cos(Math.toRadians(6*i))),
                nn+(int)((r-2)*Math.sin(Math.toRadians(6*i))),
                nn+(int)(r*Math.cos(Math.toRadians(6*i))),
                nn+(int)(r*Math.sin(Math.toRadians(6*i))));
        }

        date = new GregorianCalendar();

        int hours = date.get(Calendar.HOUR_OF_DAY);
        int minutes = date.get(Calendar.MINUTE);
        int seconds = date.get(Calendar.SECOND);

        // Stunden
        gBuffer.drawLine(
            nn,nn,nn+(int)(60*Math.cos(Math.toRadians(hours%12*30+minutes/2.0-90))),
            nn+(int)(60*Math.sin(Math.toRadians(hours%12*30+minutes/2.0-90))));

        // Minuten
        gBuffer.drawLine(
            nn,nn,nn+(int)(85*Math.cos(Math.toRadians(minutes*6-90))),
            nn+(int)(85*Math.sin(Math.toRadians(minutes*6-90))));

        // Sekunden
        gBuffer.setColor(new Color(170,170,170));
        gBuffer.drawLine(
            nn,nn,nn+(int)(90*Math.cos(Math.toRadians(seconds*6-90))),
            nn+(int)(90*Math.sin(Math.toRadians(seconds*6-90))));

        g.drawImage (buffer, 0, 0, this);

        // Verzögerung
        try {Thread.sleep(50);}
        catch (InterruptedException e) {}

        repaint();
    }

    public void update(Graphics g) {paint(g);}
}


Download  AnalogUhr.zip (ca. 3 kb)




© 2001-2004 Albert Kluge - Alle Rechte vorbehalten
Impressum | Datenschutz | Nutzung | eMail