El radio de un polígono regular del lado N A es R, su centro es (0, 0). ¿Cómo detecto si el punto b (x, y) está dentro de A?

Potencialmente te falta alguna información necesaria.

Si el punto se encuentra en la banda entre el circunradio y el inradio, entonces también necesita saber la orientación del polígono.

Por ejemplo, si el polígono es un cuadrado, ¿está orientado de modo que los lados corran horizontal y verticalmente, o se gira en ángulo?

Si el circunradio de un N-polígono regular es R, entonces el inradius (usaremos ‘r’ en minúscula) viene dado por …

[matemáticas] r = R * \ cos {\ frac {\ pi} {N}} [/ matemáticas]

La distancia desde el punto b hasta el origen viene dada por

[matemáticas] d = \ sqrt {x ^ {2} + y ^ {2}} [/ matemáticas]

si [math] d <r [/ math] entonces el punto está dentro del polígono.

si [matemática] d> R [/ matemática] entonces el punto está fuera del polígono.

Sin embargo, si [math] r <= d <= R [/ math], entonces el punto puede estar dentro, fuera o en el polígono, dependiendo de la orientación rotacional del polígono.

Digamos que sabemos que los vértices del polígono están en ángulos.

[matemática] \ theta + \ frac {2 * \ pi * k} {N} [/ matemática] para valores enteros de [matemática] k [/ matemática], donde [matemática] o <= k <N [/ matemática]

Entonces podemos dejar que [math] \ phi = atan2 (y, x) [/ math]

(ver Sistema de coordenadas polares para la definición de atan2)

Si [math] \ phi [/ math] coincide con uno de los ángulos de vértice,
entonces solo necesitamos comparar d con R para determinar si el punto está dentro / fuera / en el polígono.

De lo contrario, podemos obtener los ángulos para los dos vértices a cada lado de la línea a través de (0,0) y (x, y).

Llámalos [math] \ theta_ {0} [/ math] y [math] \ theta_ {1} [/ math]

Convertir las coordenadas polares de los vértices

[matemáticas] (R, \ theta_ {0}) [/ matemáticas] y [matemáticas] (R, \ theta_ {1}) [/ matemáticas]

a cartesiano, y luego obtener la ecuación de la línea entre ellos.

Encuentre la intersección de esta línea con la línea a través de (0,0) y (x, y), y

calcule la distancia a la intersección desde el origen y compárelo con d.