Perspektive
Dieses mal war die Aufgabe ein Applet zu erstellen, das verschiedene Quadrate durch Streckung hintereinander zeichnet.
Die Idee dabei war, das wir die Methoden kennenlernen.
Ich habe das Applet noch etwas ausgebaut ;).
Zuerst das Orginal Applet:
Vorgehen
Wir kennen:
Der Code
import java.awt.*;
import java.applet.*;
public class Perspektive extends Applet
{
final Color cBg = Color.black;
final Color cRand = Color.red;
final Color cFg = Color.black;
int xs = 0; // Start des Steckungszentrums
int ys = 200;
// Methode die einen Mitteltpunkt und die Seitenlaenge eines
// Quadrat bekommt und dieses Zeichnet.
void drawQuadrat(Graphics g,int mx, int my,int a)
{
int x = mx - (a / 2);
int y = my - (a / 2);
g.setColor(cRand);
g.drawRect(x,y,a,a);
g.setColor(cFg);
g.fillRect(x + 1,y + 1,a - 1,a - 1);
}
public void init()
{
setBackground(cBg);
}
public void paint(Graphics g)
{
int seite = 32;
int vx = 130; // Verschiebungsstrecke zum kleinesten Quadrat
int vy = vx / 4;
for(int i = 0;i <= 5;i++)
{
// Neuen Mittelpunkt berechnen:
drawQuadrat(g,xs + vx,ys + vy,seite);
// Neuen Verschiebungsvektor berechnen:
vx = 3 * vx / 2;
vy = 3 * vy / 2;
seite = 3 * seite /2;
}
g.setColor(cRand);
g.drawLine(xs,ys,xs + vx,ys + vy);
}
}