package p5;
import anar.*;




import processing.core.PApplet;

public class Test03uCircleSimplified extends PApplet {

  /*
   * Example for Anar library by Guillaume LaBelle + Julien Nembrini
   * http://anar.ch
   */


  Obj myObj;

  public void setup(){
    size(800,400,OPENGL);
    Anar.init(this);
    Anar.drawAxis();

    initForm();
  }

  public void initForm(){
    myObj = new Obj();

    Face triangle = new Face();

    triangle.add(Anar.PtRnd(100,100));
    triangle.add(Anar.PtRnd(100,100));
    triangle.add(Anar.PtRnd(100,100));
    
    myObj.add(triangle);

    Pt center = new PtBary(triangle);
    center.fill(255,0,0);
    myObj.add(center);

    Anar.camTarget(myObj);

    Pt circumcenter = new PtCircumCenter(triangle);
    circumcenter.fill(0,0,255);
    myObj.add(circumcenter);

    Face circle = new Circle(circumcenter,circumRadius(triangle),100);
    myObj.add(circle);

  }



  // http://en.wikipedia.org/wiki/Circumcircle
  float circumRadius(Face f){

    float totalLength;

    // Isit general for polygons?
    totalLength = f.pt(0).length(f.pt(1));
    totalLength *= f.pt(1).length(f.pt(2));
    totalLength *= f.pt(2).length(f.pt(0));

    float area = f.area();

    println(area);

    println(totalLength);

    return totalLength/ (4*area);
  }


  public void draw(){
    background(155);
    myObj.draw();
  }

  public void keyPressed(){
    if(key==' ')
      initForm();
  }

  public static void main(String[] args){
    PApplet.main(new String[]{Test03uCircleSimplified.class.getName()});
  }
}

