4 votos

Algoritmo para el polígono irregular aleatorio entre dos formas

No se trata de un problema de deberes. Está pensado como un reto para las personas que realmente disfrutan de las matemáticas y tienen tiempo de sobra.

Información de fondo

Suponga que tiene un sistema de coordenadas cartesianas en 2D. Hay tres formas: R , C y P .

R es un gran rectángulo. Su lado izquierdo está a lo largo del eje vertical, y su lado inferior está a lo largo del eje horizontal, de manera que su esquina inferior izquierda está en el origen (0, 0).

C es un pequeño círculo que se encuentra en algún lugar dentro de R . El centro de C no es necesariamente en R de un centro geométrico. C no puede cruzarse con ninguna parte de R de la frontera.

P es un polígono irregular de N lados. Es un polígono simple y convexo (no se autointerseca, todos los ángulos son menores de 180 grados). R rodea P y P rodea C . En otras palabras, P se encuentran en la región comprendida entre C de la frontera y R de la frontera. Las esquinas de P no necesariamente tocan los lados de R . Cualquiera de P pueden ser tangentes a C , pero ninguno de P pueden superponerse dentro de C .

Objetivo

Diseñar un algoritmo que genere una variación aleatoria de P de las esquinas. Las esquinas de P se colocan a distancias y ángulos aleatorios en relación con C de la central. La salida del algoritmo es un conjunto ordenado de coordenadas cartesianas, ordenadas por posición en sentido contrario a las agujas del reloj alrededor de C .

Se le dan los siguientes valores constantes:

  • la anchura y la altura del rectángulo delimitador R
  • el radio y el centro del círculo C
  • el número N de esquinas para el polígono P
  • la distancia máxima entre el centro de C y cualquiera de P Las esquinas de la ciudad

Si esto se puede resolver, ¿cómo implementarías este algoritmo?

O si esto no es solucionable, ¿puede explicar por qué no? ¿Qué habría que cambiar para que se pueda resolver?

0 votos

¿Puede el polígono rodear el círculo? ¿Y es un polígono simple (es decir, que no se autointerseca)?

0 votos

@Jens Sí, el polígono P es necesario para rodear el círculo. También es un polígono simple.

0 votos

Hay que añadir la condición de que $n \ge 4$ porque si el círculo $C$ casi llena el rectángulo $R$ , $C$ no puede ser encerrado por un triángulo que encaje dentro de $R$ .

3voto

yoliho Puntos 340

                  Star1

                  Star2

                  Star3


0 votos

Casi, pero todos los ángulos tienen que ser convexos.

0 votos

@MikeQ: Ah, se me pasó el requisito de convexidad, en su lugar me concentré en "aleatorio". Ahora convexo.

0 votos

Bien, entonces es solucionable. ¿Puedes explicar tu estrategia?

0voto

yoliho Puntos 340

Sin alguna condición geométrica sobre lo que significa para $R$ para ser "grande" y $C$ ser "pequeño", puede que no haya una solución para $n=3$ es decir, $P$ un triángulo:


                      TriangleImpossible


0 votos

P debe existir. Así que para modificar el problema, se necesitaría la relación entre C y el radio de R de un lado más corto. Si esta relación es de 0,5, ¿se garantiza la solución?

0 votos

@MikeQ: Creo que es más complicado que eso. Lo mejor sería simplemente exigir que exista un $\triangle$ tal que $R \supset \triangle \supset C$ . O mejor aún, estipular que $n \ge 4$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X