Cómo saber si un punto está dentro de una curva cerrada o no

El interior y el exterior se definen para curvas cerradas simples en el plano de acuerdo con el teorema de la curva de Jordan. Si el número de devanado es 0, está fuera de la curva, pero si es 1 (o –1), está dentro.

¿Cómo determinas eso? Dibuja un rayo desde el punto. Cuente la cantidad de veces que cruza la curva. Si es par, está por fuera, si es extraño, entonces por dentro. Esto supone que cada intersección del rayo con la curva es simple. De lo contrario, debe agregar la multiplicidad de la intersección.

De hecho, no tiene que ser un rayo, siempre y cuando sea una curva que comienza en el punto y se extiende hasta el infinito.

En el diagrama a continuación, el rayo corta la curva en 8 puntos simples, por lo que el punto negro está en el exterior de la curva.


Imagen de la geometría computacional de David Eppstein

(Para los números de devanado, oriente la curva y agregue +1 o –1 cada vez que la cruce dependiendo del cruce. Consulte ¿Qué es una explicación intuitiva de un número de devanado? Para obtener más información. Los números de devanado se aplican a curvas cerradas que no son simple así como los que son).

Este es un pequeño truco para encontrar la posición relativa del punto con respecto a la curva dada en un plano.

Funciona incluso si no conoce la geometría de la curva.

En la ecuación de la curva, ponga el punto que desea verificar.
Y encuentra la salida numérica.
Llame a la salida ‘S’

Si

S> 0: el punto se encuentra fuera de la curva.
S <0: el punto se encuentra dentro de la curva.
S = 0: el punto se encuentra en la curva.

P.ej:
Deja que la ecuación sea
x ^ 2 + y ^ 2 = 1

Entonces S = (x ^ 2) + (y ^ 2) – 1
Ahora verifique el punto (1,1)
Pon x = 1 e y = 1
Entonces S = 1> 0
Por lo tanto, el punto se encuentra fuera de la curva, aquí hay un círculo

El enfoque más general es calcular el número de devanado de la curva con respecto al punto a través de una integral de contorno sobre la curva. El número de devanado es cero si el punto está fuera de la curva y, de lo contrario, no es cero. Si puede aproximar la curva como un polígono, entonces hay una manera fácil de calcular una versión simplificada de la integral:

Comience por establecer el número de devanado [math] w [/ math] en cero.

Las coordenadas de nuestro punto [matemáticas] P [/ matemáticas] son ​​[matemáticas] (x_ {P}, y_ {P}) [/ matemáticas].

Traduzca todo el problema para que el punto [matemáticas] P [/ matemáticas] esté en el origen (es decir, reste [matemáticas] x_ {P} [/ matemáticas] de todas las coordenadas [matemáticas] x [/ matemáticas] y [ matemática] y_ {P} [/ matemática] de todas las coordenadas [matemática] y [/ matemática]).

Llamaremos a los vértices traducidos de nuestro polígono [matemáticas] V_ {1}, V_ {2}… V_ {n} [/ matemáticas].

Para cada par de vértices adyacentes, calcule la intersección del segmento de línea que los une con el eje [matemático] x [/ matemático]. No olvide incluir el segmento [matemática] V_ {n} \ rightarrow V_ {0} [/ matemática]. Si no hay intersección, o si la intersección ocurre en un punto [matemática] x <0 [/ matemática], ignórela. De lo contrario, si el segmento de línea está "hacia arriba" (es decir, el primer vértice está debajo del eje y el segundo está arriba), entonces incremente [math] w [/ math] en uno; si el segmento de línea es "hacia abajo", disminuya [math] w [/ math] en uno.

Después de procesar todos los segmentos de línea, el número de devanado final le dirá si el punto está fuera de [matemática] w = 0 [/ matemática] o dentro de [matemática] w \ neq 0 [/ matemática] la curva.

Parece que ya recibió las respuestas que necesita de David Joyce y Jonathan Paulson.

Solo agregaré que si tiene una curva cerrada en forma paramétrica, también puede usar el teorema integral de Cauchy para ver si un punto se encuentra dentro de la curva.
(vea también la fórmula integral de Cauchy y el teorema del residuo)

Si tiene una función que es analítica en alguna región simplemente conectada del plano complejo, entonces el Teorema de Residuos, que se deriva del Teorema Integral de Cauchy, establece que una integral de contorno alrededor de cualquier curva cerrada simple en la región que no encierra ninguna singularidad evaluará a cero. Si la curva encierra una o más singularidades, entonces se evaluará a 2 * pi * i veces la suma de los residuos.

Simplemente puede crear una función analítica con una singularidad en su punto y tomar la integral de contorno a lo largo de su curva cerrada (puede ser una serie de integrales de línea para un polígono).

Esto puede ser más fácil que contar cruces de rayos en algunas situaciones.

Pude encontrar al menos una referencia que sugiere que alguien en realidad está usando este método en una aplicación de software …
Puntos dentro o fuera? – Una solución integral Cauchy

Supongamos que xey son vectores de columna para una curva cerrada que no se cruza a sí misma, de modo que “” dentro “” y “” fuera “” son términos significativos, y sea (x0, y0) el punto en cuestión. Entonces haz esto:

x1 = x – x0; y1 = y – y0; % Traducir la base de los vectores a (x0, y0)

x2 = x1 ([2: final, 1]); y2 = y1 ([2: final, 1]); Avanzar en un índice

s = suma (atan2 (x1. * y2-y1. * x2, x1. * x2 + y1. * y2)); % Suma los ángulos proyectados

in = abs (s)> pi; % ‘in’ es verdadero si (x0, y0) está dentro, de lo contrario es falso

Para cualquier (x0, y0) dentro de la curva, ‘s’ será 2 * pi o -2 * pi, dependiendo de si la curva se está rastreando con un índice creciente en sentido antihorario o horario, respectivamente, y en cualquier caso ‘en ‘será verdad. Para (x0, y0) fuera de la curva, ‘s’ será necesariamente cero y ‘in’ será falso.

La teoría detrás de esto es que cada valor en el vector de resultados ‘atan2’ es el ángulo con signo entre -pi y + pi proyectado de nuevo en el punto (x0, y0) por movimiento a lo largo de cada uno de los segmentos de línea consecutivos del polígono. La suma de estos ángulos debe ser el ángulo neto barrido por el movimiento alrededor del polígono completo y, por lo tanto, para un punto interno debe ser un círculo completo de 2 * pi o -2 * pi radianes y para un punto externo un valor neto de cero

Ayuda gratuita de geometría

Dispara un rayo desde el punto (en cualquier dirección) y cuenta cuántos lados cruzas. Si incluso, estás afuera. Si es extraño, estás dentro.

debe probar su posición de punto contra el borde superior x, la curva y con una restricción menor, y lo opuesto, contra el borde inferior con una restricción superior, y probar si ambos resultan verdaderos, entonces está dentro.
Ex.
si mi punto <= línea superior (punto conocido en la línea superior)
y
my dot> = línea inferior (punto conocido en la línea inferior)
entonces mi punto está entre líneas.

si resulta incorrecto en cualquiera de las declaraciones, entonces está afuera, si resulta igual en cualquiera de ellas, entonces sabes que está en esa línea

Dibuje una línea desde el punto a otro punto fuera de la curva (posiblemente un punto en el infinito). Cuente la cantidad de veces que la línea cruza la curva. Si es extraño, su punto está dentro de la curva, si es incluso su exterior.

Haga un modelo tridimensional grande y vierta un poco de agua en el punto. Si contiene agua, estás dentro. Alternativamente, si no tiene el tiempo y los materiales, puede usar el método perezoso: cuente el número de cruces.