C5

Streda

package sk.paz1a.practicals.task05;

import sk.upjs.jpaz2.*;

public class Launcher {

        public static void main(String[] args) {
                // GrafickyEditor louvre = new GrafickyEditor();
                Korytnackovo newYork = new Korytnackovo();
                ObjectInspector oi = new ObjectInspector();
                oi.inspect(newYork);

        }
}
package sk.paz1a.practicals.task05;

import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;

public class GrafickyEditor extends WinPane {

        private Turtle kreslic;
        private boolean boloStlaceneLaveTlacidlo;

        public GrafickyEditor() {
                this.kreslic = new Turtle();
                this.add(this.kreslic);
        }

        @Override
        protected void onMouseClicked(int x, int y, MouseEvent detail) {
                this.kreslic.setPosition(x, y);
        }

        @Override
        protected void onMouseMoved(int x, int y, MouseEvent detail) {
                if (detail.isAltDown()) {
                        int initialX = (int) (this.kreslic.getX());
                        int initialY = (int) (this.kreslic.getY());
                        this.kreslic.penDown();
                        this.kreslic.setDirectionTowards(x, y);
                        this.kreslic.moveTo(x, y);
                        this.kreslic.setPosition(initialX, initialY);
                }
        }

        @Override
        protected void onMousePressed(int x, int y, MouseEvent detail) {
                if (detail.getButton() == MouseEvent.BUTTON1) {
                        // System.out.println("pressed");
                        this.boloStlaceneLaveTlacidlo = true;
                }
        }

        @Override
        protected void onMouseDragged(int x, int y, MouseEvent detail) {
                if (this.boloStlaceneLaveTlacidlo) {
                        // System.out.println("dragged");
                        this.kreslic.moveTo(x, y);
                }
        }

        @Override
        protected void onMouseReleased(int x, int y, MouseEvent detail) {
                if (detail.getButton() == MouseEvent.BUTTON1) {
                        // System.out.println("released");
                        this.boloStlaceneLaveTlacidlo = false;
                }
        }
}
 
package sk.paz1a.practicals.task05;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;

public class Korytnackovo extends WinPane {

        private Turtle[] korytnacky;

        public Korytnackovo() {
                this.korytnacky = new Turtle[10];

                for (int i = 0; i < this.korytnacky.length; i++) {
                        this.korytnacky[i] = new Turtle();
                        this.add(this.korytnacky[i]);
                        this.korytnacky[i].setPosition(this.getWidth() * Math.random(), this.getHeight() * Math.random());
                }
        }

        public void posunITu(int idx, double dlzka) {
                this.korytnacky[idx].step(dlzka);
        }

}
 

Štvrtok

package sk.paz1a.practicals.task05;

import sk.upjs.jpaz2.*;

public class Launcher {

        public static void main(String[] args) {
                // GrafickyEditor louvre = new GrafickyEditor();
                Korytnackovo newYork = new Korytnackovo();
                ObjectInspector oi = new ObjectInspector();
                oi.inspect(newYork);

        }
}
package sk.paz1a.practicals.task05;

import java.awt.Color;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;

public class Korytnackovo extends WinPane {

        private Turtle[] korytnacky;

        public Korytnackovo() {
                this.korytnacky = new Turtle[32];

                for (int i = 0; i < this.korytnacky.length; i++) {
                        this.korytnacky[i] = new Turtle();
                        this.add(this.korytnacky[i]);
                        this.korytnacky[i].setPosition(this.getWidth() * Math.random(), this.getHeight() * Math.random());
                }

                // volam metodu
                this.nahodneFarby();
        }

        public void posunITu(int idx, double dlzka) {
                this.korytnacky[idx].step(dlzka);
        }

        public void nahodneFarby() {
                for (int i = 0; i < this.korytnacky.length; i++) {
                        int r = (int) (Math.random() * 256);
                        int g = (int) (Math.random() * 256);
                        int b = (int) (Math.random() * 256);
                        Color nahodnaFarba = new Color(r, g, b);
                        this.korytnacky[i].setPenColor(nahodnaFarba);
                }
        }

        public Color sFarbouVon(int index) {
                Color farba = this.korytnacky[index].getPenColor();
                return farba;
        }

        public void krok() {
                for (int i = 0; i < this.korytnacky.length; i++) {
                        Turtle posuvana = this.korytnacky[i];
                        int indexNasledujucej = (i + 1) % this.korytnacky.length;
                        Turtle nasledujuce = this.korytnacky[indexNasledujucej];
                        posuvana.turnTowards(nasledujuce.getX(), nasledujuce.getY());
                        // posuvana.turnTowards(nasledujuce.getPosition());
                        double vzdialenost = posuvana.distanceTo(nasledujuce.getX(), nasledujuce.getY());
                        posuvana.step(vzdialenost / 10);
                }
        }

}