Cvičenia: 5. týždeň - riešenia úloh

Streda

import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.*;

public class GrafickyEditor extends WinPane {

        Turtle kresliacePero = new Turtle();

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

        }

        @Override
        protected void onMouseDragged(int x, int y, MouseEvent detail) {
                double startX = kresliacePero.getX();
                double startY = kresliacePero.getY();
                if (detail.isAltDown()) {
                        double kdeSaNatacam = kresliacePero.getDirectionTowards(x, y);
                        kresliacePero.setDirection(kdeSaNatacam);
                        kresliacePero.moveTo(x, y);
                        kresliacePero.moveTo(startX, startY);
                }
                if (detail.BUTTON1==1) {
                        kresliacePero.moveTo(x,y);
                }

        }
}
 
import java.awt.Color;
import java.awt.event.MouseEvent;

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

public class Korytnackovo extends WinPane {
        Turtle[] korytnacky;

        public Korytnackovo() {

                korytnacky = new Turtle[10];

                for (int i = 0; i < korytnacky.length; i++) {
                        korytnacky[i] = new Turtle();
                        this.add(korytnacky[i]); // pridáme korytnačku i do plochy
                        korytnacky[i].setPosition(Math.random() * this.getWidth(),
                                        Math.random() * this.getHeight());
                }
        }

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

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

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


        protected void onMouseClicked(int x, int y, MouseEvent detail) {
                korytnacky[(int) (Math.random()*10)].moveTo(x, y);
        }
}
 
import sk.upjs.jpaz2.ObjectInspector;


public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                // TODO Auto-generated method stub
//              double[] cisla;
//              cisla=new double[20];
//              System.out.println(cisla.length);
//              System.out.println(cisla[0]);
                //GrafickyEditor ge=new GrafickyEditor();
                Korytnackovo kor = new Korytnackovo();
                ObjectInspector oi = new ObjectInspector();
                oi.inspect(kor);
        }

}
 

Piatok

import java.awt.Color;
import java.awt.event.MouseEvent;

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

public class Korytnackovo extends WinPane {
        Turtle[] korytnacky;

        public Korytnackovo() {

                korytnacky = new Turtle[10];

                for (int i = 0; i < korytnacky.length; i++) {
                        korytnacky[i] = new Turtle();
                        this.add(korytnacky[i]); // pridáme korytnačku i do plochy
                        korytnacky[i].setPosition(Math.random() * this.getWidth(),
                                        Math.random() * this.getHeight());
                }
        }

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

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

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

        protected void onMouseClicked(int x, int y, MouseEvent detail) {
                korytnacky[(int) (Math.random() * 10)].moveTo(x, y);
        }

        public void krok() {
                for (int i = 0; i < korytnacky.length; i++) {
                        korytnacky[i].turnTowards(
                                        korytnacky[(i + 1) % korytnacky.length].getX(),
                                        korytnacky[(i + 1) % korytnacky.length].getY());

                }
                for (int i = 0; i < korytnacky.length; i++) {
                        korytnacky[i].step((korytnacky[i].distanceTo(korytnacky[(i + 1)
                                        % korytnacky.length].getX(), korytnacky[(i + 1)
                                        % korytnacky.length].getY())) / 10.0);

                }

        }

        public void kroky(int pocetKrokov) {
                for (int i = 0; i < pocetKrokov; i++) {
                        JPAZUtilities.delay(250);
                        this.krok();
                }
        }

        public void doKruhu(double polomer) {
                Turtle jozko = new Turtle();
                this.add(jozko);
                jozko.center();
                jozko.penUp();
                for (int i = 0; i < 10; i++) {
                        jozko.step(polomer);
                        korytnacky[i].setPosition(jozko.getX(), jozko.getY());
                        jozko.step(-polomer);
                        jozko.turn(360 / 10);

                }
                this.remove(jozko);
        }

        public void bezpecnyKruh(int indexKorytnacky) {
                double polomer = 1000;//aky tu musim dat polomer?

                for (int i = 0; i < korytnacky.length; i++) {
                        double vzdialenost = 0;

                        if (i==indexKorytnacky){
                                continue;
                        }
                        vzdialenost = korytnacky[i].distanceTo(korytnacky[indexKorytnacky]
                                        .getPosition());
                        if (vzdialenost<polomer){
                                polomer = vzdialenost;
                        }
                }

                korytnacky[indexKorytnacky].dot(polomer);
        }
}