/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package algoritmobr;

import java.util.ArrayList;

/**
 * @author Joel
 * @author Cristian
 */
public class rectaDual {
    private vertice ptoAzul;
    private ArrayList<dualRojo> ptosRojos = new ArrayList<> ();
    
    public rectaDual(vertice B, ArrayList<vertice> R){
        this.ptoAzul=B;
        for(int i=0; i<R.size(); i++){
            dualRojo aux = new dualRojo(R.indexOf(R.get(i)), R.get(i), inter(ptoAzul, R.get(i)), ptoAzul);
            ptosRojos.add(aux);
        }
        //mergesort(ptosRojos, 0, ptosRojos.size());
    }
    public vertice inter(vertice P, vertice U){
        vertice solucion=new vertice();
        double y, x;
        double a = P.getX();
        double b = -1;
        double c = -1*P.getY();
        double d = U.getX();
        double e = -1;
        double f = -1*U.getY();
        y = ((f * a) - (d * c)) / ((e * a) - (d * b));
        x = (c - (b * y)) / a;
        solucion.setVertice(x, y);
        return solucion;
    }
    public vertice getAzul(){
        return ptoAzul;
    }
    public ArrayList<dualRojo> getRojo(){
        return ptosRojos;
    }
    
    public String toString(){
        String mensaje="El punto "+ptoAzul.toString()+" se intersecta con:\n";
        for(int i=0; i<ptosRojos.size(); i++)
            mensaje=mensaje+ptosRojos.get(i).toString();
        return mensaje;
    }
}
