import sk.uniba.fmph.pocprak.simplegraphics.*;
import java.awt.*;
public class Pole4 {
  public static void main(String[] args) {
    Killer.createKiller();

    Kreslic krxy = new Kreslic(new GrAxisX( -0.5, 0.5, 0.),
                               new GrAxisY( -0.5, 0.5, 0.));
    //krxy.nakresliOsi();
    naboj q1 = new naboj(0.22, 0.0, 1.);
    naboj q2 = new naboj( -0.22, 0.0, -1.);
    q1.draw(krxy.gr, 4);
    q2.draw(krxy.gr, 4);
    krxy.gr.repaint();
    naboj qs[] = {
        q1, q2};
    poleE pE = new poleE(qs);

    for (int i = 0; i < 20; i++) {
      double x = -0.525 + 0.05 * i;
      for (int j = 0; j < 20; j++) {
        double y = -0.525 + 0.05 * j;
        point pp = new point(x, y);
        vector E1 = pE.E(pp).unit();
        E1.draw(krxy.gr, pp, 0.02);
      }
    }
    krxy.gr.repaint();

    for(int i=0;i<10;i++){
      double psi = Math.PI/5*i;
      double x = 0.25+0.05*Math.cos(psi);
      double y = 0.05 * Math.sin(psi);
      point ppp = new point(x,y);
      pE.silociara(ppp,krxy.gr);
      krxy.gr.repaint();
    }

    for(int i=0;i<10;i++){
      double psi = Math.PI/10.+Math.PI/5*i;
      double x = -0.25+0.05*Math.cos(psi);
      double y = 0.05 * Math.sin(psi);
      point ppp = new point(x,y);
      pE.silociara(ppp,krxy.gr);
      krxy.gr.repaint();
    }

    krxy.gr.setPaint(Color.CYAN);
    point p1= new point(0.2,0.1); p1.draw(krxy.gr,3);
    point p2= new point(-0.3,0.2);p2.draw(krxy.gr,3);
    krxy.gr.repaint();
    Path pth = new Path();
    pth.addPoint(p1);
    pth.addPoint(p2);
    System.out.println("Klikanim pridajte asi tak 10 bodov a vytvorte tak");
    System.out.println("medzi dvoma tyrkysovymi bodmi cestu pre vypocet prace v elektrickom poli");
    System.out.println("Pri poslednom pridavanom bode cesty urobte double-klik ako signal toho");
    System.out.println("ze pridavanie je skoncene");
    pth.addMousePoints(krxy.gr);
    pth.makeDense(10000); //prida na drahu body tak, aby ich spoolu bolo 10000
    pth.draw(krxy.gr);
    krxy.gr.repaint();
    System.out.println("Praca po ceste = "+pE.praca(pth));

    Path pth1 = new Path();
    pth1.addPoint(p1);
    pth1.addPoint(p2);
    System.out.println("Este raz to iste ale vytvorte inu cestu");
    System.out.println("Klikanim pridajte asi tak 10 bodov a vytvorte tak");
    System.out.println("medzi dvoma tyrkysovymi bodmi cestu pre vypocet prace v elektrickom poli");
    System.out.println("Pri poslednom pridavanom bode cesty urobte double-klik ako signal toho");
    System.out.println("ze pridavanie je skoncene");
    pth1.addMousePoints(krxy.gr);
    pth1.makeDense(10000); //prida na drahu body tak, aby ich spoolu bolo 10000
    pth1.draw(krxy.gr);
    krxy.gr.repaint();
    System.out.println("Praca po ceste = "+pE.praca(pth1));

    System.out.println("Koniec programu, zatvorte okno");
  }
}
