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 : 3D : Kugel -


Eine rotierende Kugel als Java-Applet.

[Die Kugel (Sphere) in Rotation als Java-Applet lässt sich allerdings nur mit aktiviertem Java betrachten !]


Kugel.java

import java.awt.*;
import java.awt.geom.*;
import java.applet.*;

public class Kugel extends Applet {

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

    Image buffer;
    Graphics2D gBuffer;

    // Neigung um 23 Grad
    AffineTransform at = AffineTransform.getRotateInstance(Math.toRadians(-23),200,200);

    int rot = 0;

    public void paint(Graphics g) {

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

        gBuffer.setTransform(at);

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

        gBuffer.setColor(new Color(0,0,220));
        gBuffer.fillOval(51,51,298,298);

        gBuffer.setColor(new Color(255,255,255));

        // Kugelposition: 50,50, Durchmesser: 300
        for (int i=1;i<10;i++) {
            // Breitengrade
            double y = 150*Math.cos(Math.toRadians(i*10));
            gBuffer.drawLine(
                200-(int)(Math.sqrt(150*150-y*y)),200-(int)y,
                200+(int)(Math.sqrt(150*150-y*y)),200-(int)y);
            gBuffer.drawLine(
                200-(int)(Math.sqrt(150*150-y*y)),200+(int)y,
                200+(int)(Math.sqrt(150*150-y*y)),200+(int)y);
            // Längengrade
            gBuffer.drawArc(
                50+(int)((300-(300*Math.cos(Math.toRadians(rot+i*10-10))))/2),50,
                (int)(300*Math.cos(Math.toRadians(rot+i*10-10))),300,90,180);
            gBuffer.drawArc(
                50+(int)((300-(300*Math.sin(Math.toRadians(rot+i*10-10))))/2),50,
                (int)(300*Math.sin(Math.toRadians(rot+i*10-10))),300,90,-180);
        }

        if (rot<9) rot++; // Rotation um 1 Grad
        else rot = 0;

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

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

        repaint();
    }

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


Download  Kugel.zip (Applet und Code, ca. 3 kb)




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