4 votos

Dividiendo un polígono en 4 partes iguales

Tengo un polígono convexo y quiero dividirlo en 4 partes iguales usando las dos divisiones perpendiculares. Como en una imagen. Necesito s1 = s2 = s3 = s4; Necesito obtener las coordenadas del punto donde se cruzan las líneas y el ángulo de rotación del polígono. Creo que primero necesito dividir el polígono en 2 partes por la 1ª línea, luego por la 2ª línea. Luego obtengo el punto de cruce de las líneas y luego compruebo s1 = s2 = s3 = s4. Si no es así, necesito rotar el polígono a algún ángulo. ¿Hay algo mejor para este propósito?

ingresa una descripción de la imagen aquí

0 votos

0 votos

¿Qué imagen? No veo ninguna en la pregunta, ni siquiera un enlace.

0 votos

@lhf en mi pregunta 2 líneas deben ser perpendiculares

2voto

Roger Hoover Puntos 56

Esto solo se aplica a polígonos convexos.

Podemos usar un argumento de continuidad. Fija una dirección $v\in S^1$: existe una (solo una) línea $t_v$ paralela a $v$ que divide el área del polígono en dos partes iguales, $L_v$ a la izquierda de $t_v$ y $R_v$ a la derecha de $t_v$. Por una razón similar, existe una (solo una) línea $l_v$ ortogonal a $t_v$ que divide en dos partes iguales $L_v$, y una (solo una) línea $r_v$, ortogonal a $t_v$, que divide en dos partes iguales $R_v$. Llamemos $P_L=t_v\cap l_v$ y $P_R=t_v\cap r_v$. Digamos que $v$ es "diestro" si $P_R-P_L$ tiene la misma dirección que $v", "siniestro" si $P_R-P_L$ tiene dirección opuesta. Si $v$ es diestro entonces $-v$ es siniestro, así que en algún punto entre $v$ y $-v$ debemos tener una dirección que no sea ni diestra ni siniestra, es decir, una solución para nuestro problema de división.

Y sí, esto es solo una consecuencia del teorema de Borsuk-Ulam.

0 votos

El problema es claramente solucionable. Creo que el OP está buscando un algoritmo eficiente, no una prueba de solucionabilidad.

0 votos

Un algoritmo "eficiente" puede ser diseñado de la siguiente manera: considera el mapa de $v\in S^1$ a $P_R-P_L$ como una "longitud orientada". Es una aplicación $C^1$ por partes ya que la línea de división paralela a $v$ se puede encontrar considerando la imagen inversa de un punto para una función cuadrática por partes monótona. Por lo tanto, solo necesitamos un método para encontrar un cero de una función $C^1$ por partes. Bisección, por ejemplo. O Newton, si estamos lejos de las discontinuidades de la derivada.

0 votos

Como estudiante de matemáticas, estoy de acuerdo en que podría ser un gran algoritmo. Como programador, no tengo idea de cómo implementar lo que has descrito.

0voto

Mamta D Puntos 201

Editar: Solo se aplica a polígonos simétricos, ver comentarios

Vamos a razonar físicamente. Supongamos que intentas equilibrar el polígono en una línea, si la línea no incluye el centro de masa (centroide) del polígono entonces es obvio que el polígono se inclinará hacia un lado y se caerá. Si no se inclina, entonces está en equilibrio y la masa (área) a cada lado del polígono debe ser igual.

A partir de este razonamiento, es obvio que cualquier línea que uses para cortar el polígono debe pasar por el centroide del polígono.

Bajo la restricción de que ambas líneas deben ser perpendiculares, te queda determinar la rotación del polígono. Puedes hacerlo mediante una búsqueda lineal a través de $[0,\frac{\pi}{2}[$ debido a la simetría del corte.

0 votos

¿Quieres decir que necesito encontrar 1 punto - centroide y colocar ambas líneas allí y simplemente rotar el polígono?

0 votos

Sí. El centroide es fácil de calcular directamente.

0 votos

No puede ser claro que uno siempre puede usar el centroide como centro, y garantizar que alguna rotación alrededor de ese punto dé a las cuatro áreas iguales.

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