Ayuda con una gilipollez :S.

GrimMcSlam

No sé qué me pasa... pero estoy seco de neuronas y no puedo encontrar la manera de resolver esto.

Tengo un rectángulo y tengo como datos las coordenadas de las esquinas superior izquierda y la inferior derecha:


|____|

Necesito hacer un programa que me diga si, dado un punto, éste pertenece o no pertenece a ese rectángulo (está en el interior) :S. He intentado 3 o 4 cosas, xo es q no se me ocurre nada... y eso q me parece simplísimo :S.

Alguien me ayuda??.

Elektr0_ddr

Si un punto esta entre los valores de las coordenadas X de los 2 puntos que delimitan el rectangulo y además tambien esta entre las coordenadas Y, pertenecería, sino pues no...

Asi lo haria yo vaya xD

GrimMcSlam

Así lo había hecho yo... por ejemplo:

if((y_raton < rectangulo.Inicio.Y || (y_raton > rectangulo.inicio.Y + rectangulo.ancho.Y)
&&
(x_raton < rectangulo.Inicio.X || (x_raton > rectangulo.inicio.X + rectangulo.ancho.X)){
//Etc etc

Buffoncete

si miras si está fuera para que pones una &&, cambiala por una ||

y deja de usar paréntesis aleatorios xD

EDITO: me explico mejor.

si tenemos un cuadrado delimitado por {Xinf,Yinf} y {Xsup,Ysup} y tenemos un punto x cualquiera {X,Y}

x es interior al cuadrado sí:

(Xinf <= x <= Xsup) && (Yinf <= y <= Ysup) desarrollamos

(Xinf <= x) && (x <= Xsup) && (Yinf <= y) && (y <= Ysup)


Si lo que queremos mirar es si x es exterior al cuadrado, tienes que negarlo todo.

(Xinf > x) || (x > Xsup) || (Yinf > y) || (y > Ysup)

GrimMcSlam

Ummm gracias!!.

Lo de los paréntesis han sido paranoyas mias, xa encontrar una solución :S. Tengo la neurona reventá hoy :S.

Soltrac

xDDDD se te va eh? XDD

Usuarios habituales

  • Soltrac
  • GrimMcSlam
  • Buffoncete
  • Elektr0_ddr