Saltar al contenido

¿Cómo verificar si un punto está dentro de un rectángulo?

Este dilema se puede tratar de variadas formas, sin embargo te compartimos la respuesta más completa en nuestra opinión.

Solución:

$M$ de coordenadas $(x,y)$ está dentro del rectángulo iff

$$(0

Sea $P(x,y)$, y el rectángulo $A(x_1,y_1),B(x_2,y_2),C(x_3,y_3),D(x_4,y_4)$

Calcula la suma de las áreas de $triangle APD, triangle DPC, triangle CPB, triangle PBA$.

  1. Si esta suma es mayor que el área del rectángulo, entonces $P(x,y)$ está fuera del rectángulo.

  2. De lo contrario, si esta suma es igual al área del rectángulo (observe que esta suma no puede ser menor que este último),

    1. si el área de cualquiera de los triángulos es $0$, entonces $P(x,y)$ está en el rectángulo (de hecho en esa línea correspondiente al triángulo de área$=0$). Obsérvese que la igualdad de la suma es necesaria; no es suficiente que area$=0$),

    2. de lo contrario, $P(x,y)$ está dentro del rectángulo.

Aceptablemente, este enfoque necesita una cantidad sustancial de cálculo. Este enfoque también se puede emplear para cualquier polígono irregular.


Otra forma es calcular las distancias perpendiculares de $P(x,y)$ desde las 4 líneas $AB,CD, AD,BC$

Para estar dentro del rectángulo, las distancias perpendiculares desde $AB, P_AB$(digamos) y desde $CD, P_CD$(digamos) deben ser menores que $|AD|=|BC|$ y la perpendicular las distancias desde $AD, P_AD$(digamos) y desde $BC, P_BC$(digamos) deben ser menores que $|CD|=|AB|$. Aquí, las áreas de cada uno de los cuatro triángulos < $frac12$el área del rectángulo.

  1. Si una de las distancias perpendiculares es mayor que la longitud respectiva, entonces $P(x,y)$ está fuera del rectángulo.

    Esto esencialmente implica y está implícito en la declaración: el área del triángulo respectivo > $frac12$el área del rectángulo (como lo comentó Ben Voigt) como $triangle APD=frac1 2ADcdot P_AD$.

  2. De lo contrario, si $ P_AB=0$ y $P_CD=|AD|$, entonces $P(x,y)$ está en AB. Entonces, $triangle PBA=0$ y $triangle PCD=frac12$el área del rectángulo.

    Observe que en este caso, las dos distancias perpendiculares restantes $P_AD, P_BC$ deben ser ≤ $|AB|=|CD|$, $P_BC=|AB|implica P(x, y)$ está en AD, es decir, P coincide con A porque ya está en AB.

Usaría una función de “punto en un polígono convexo”; esto funciona comprobando si el punto está “a la izquierda de” cada una de las cuatro líneas.

Si te animas, puedes dejar un tutorial acerca de qué le añadirías a este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *