Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static jsTools.Graph.*;
- import static jsTools.Input.*;
- public class Zug {
- /** Diese Klasse erzeugt den "Kopf" des Zuges */
- public static class Lok {
- int b;
- int h;
- int d;
- int posx;
- int posy;
- String col;
- Wagon wagen;
- /** Dies ist der Konstruktor */
- Lok (){
- b=100;
- h=40;
- d=(h/3)*2;
- posx=50;
- posy=100;
- col="black";
- }
- /** Diese Methode hängt einen übergebenen Wagen ans Ende des Zuges */
- void appWagon(Wagon w) {
- }
- /**
- * Diese Methode zeichnet die Lok an die Position gemäß der Attribute posx und posy.
- * Danach ruft sie die Zeichenmethode des angehängten Wagens auf. Die Position des Wagens
- * berechnet sich aus der Position der Lok (posx,posy) + dem Versatz durch die Länge der
- * Lok (posx + laengeLok.posy). Damit wird dann der ganze Zug gezeichnet.
- * */
- void paint() {
- addRect(posx, posy, b, h, col); //BASE
- addRect(posx + b - (b/5)*2, posy-(h/3), (b/5)*2, (h/3), col); //OBEN
- addRect(posx + b - (b/20)*9, posy - 2*(h/3), (b/20)*10, (h/3), col); //DACH
- addRect(posx, posy - (h/3), b/5, (h/3), col); //SCHORNSTEIN
- addCircleBorder(posx + b - d + (b/20), posy+h - ((h/3)*2)/2, d, col); //RAD RECHTS
- addCircleBorder(posx + b - d - (b/4), posy+h - ((h/3)*2)/2, d, col); //RAD MITTE
- addCircleBorder(posx - (d/8), posy+h - ((h/3)*2)/2, d, col); //RAD LINKS
- }
- }
- /**
- * Diese Klasse enthält als Attribut zur Organisation des Zuges die Referenz auf den an ihm
- * angehängten Wagen. Zum Zeichnen sind wiederum Attribute, die die Geometrie der Wagen festlegen
- * vorzusehen (Länge, ...).
- * */
- public static class Wagon {
- int b;
- int h;
- int d;
- int s;
- int posx;
- int posy;
- String col;
- String text;
- // Wagon next;
- // Wagon (Wagon n){
- // next=n;
- // }
- /** Dies ist der Konstruktor */
- Wagon (){
- b=100;
- h=40;
- d=(h/3)*2;
- s=b/5;
- posy=100;
- col="black";
- }
- void paint(int n) {
- posx=50+(n*(b+s));
- text=""+n;
- if (n==0) return;
- addRect(posx, posy, b, h, col);
- addRect(posx-s, posy+(h/5)*4, s, h/15, col);
- addCircleBorder(posx + (b/15), posy+h - ((h/3)*2)/2, d, col);
- addCircleBorder(posx + b - d - (b/15), posy+h - ((h/3)*2)/2, d, col);
- addRectBorder(posx+(b/2)-(b/8), posy+(h/4), b/4, h/2, white, text);
- n--;
- paint(n);
- }
- }
- public static void main (String args []) {
- // int n=readInt("Wieviele Wagons? ");
- int n=3;
- Lok l = new Lok();
- l.paint();
- Wagon w = new Wagon();
- w.paint(n);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement