bool estaMuyLejosCentro(MinuciaParcial mp) { Atributos atr = Atributos.getInstance(); double maxDistancia = ((double)atr.maxDistancia / (double)100) * atr.radioVecinos; double distancia = Funcion.distancia(mp.minuciaCentral.x, mp.minuciaCentral.y, mp.minucia.x, mp.minucia.y); return(distancia > maxDistancia); }
bool sonEncajables(ParAlineado pa) { Atributos atr = Atributos.getInstance(); double distancia = Funcion.distancia(pa.xT, pa.yT, pa.xDestino, pa.yDestino); bool cercanosEnDistancia = distancia <= (double)atr.radioEncaje; bool diferenciaDireccionPequeña = true; return(cercanosEnDistancia && diferenciaDireccionPequeña); }
public void agregarVecinos(List <Minucia> listaMinucias) { Atributos atr = Atributos.getInstance(); vecinos = new List <Minucia>(); foreach (Minucia minucia in listaMinucias) { if (this != minucia && Funcion.distancia(this.x, this.y, minucia.x, minucia.y) <= atr.radioVecinos) { this.vecinos.Add(minucia); } } }
//Dada una minucia mp trasladada, mirar si existe en los vecinos del destino bool hayAlgunEncaje(MinuciaParcial mp, List <MinuciaParcial> destino) { Atributos atr = Atributos.getInstance(); bool encaje = false; foreach (MinuciaParcial mpdestino in destino) { int dx = mpdestino.minucia.x; int dy = mpdestino.minucia.y; double distancia = Funcion.distancia(dx, dy, mp.x, mp.y); if (distancia <= atr.radioEncaje) { encaje = true; break; } } return(encaje); }