¡Bueno, finalmente logré hacer eso, pero tomó más tiempo del esperado :
Mi forma está definida por una lista de elementos Contour
, Contour está definido por 2 puntos y un radio. Si es un segmento entonces el radio=0, si es un arco, el radio es positivo si giro en dirección trigonométrica, negativo si es en la dirección opuesta).
Hago una primera verificación, comprobando si las áreas son iguales (solo para identificar más rápido si las formas son iguales o no).
Para cada forma, recorro cada segmento(o arco de círculo) en sentido horario y devuelvo 3 resultados :
- Lista de las longitudes de los segmentos(solo Pitágoras, no se verifican los radios)
- Lista de radios de cada segmento/arco
- Lista de ángulos entre cada segmento y el segmento consecutivo
Luego puedo compararlos (tengamos en cuenta que comienzo desde el mismo punto en cada figura). En C# simplemente hice un bucle intentando empezar desde diferentes puntos.
Si las 3 listas son iguales, esto significa que las formas son iguales y sin rotación.
Luego, para el problema de simetría, simplemente recalculare las 3 listas anteriores para la segunda forma, pero recorriendo los contornos en dirección opuesta, si los resultados son iguales (los ángulos y los radios solo serán de signo opuesto), entonces es la misma forma con simetría.
0 votos
¿No sería un ejemplo contrario un romboide o un paralelogramo? Creo que sería muy difícil encontrar las condiciones precisas que te permitan decir definitivamente: no puedes cortar una forma en trozos y reorganizarlos con el mismo perímetro. El número de lados ciertamente no es suficiente.
0 votos
@stevengregory sí, pero la respuesta vinculada se refería a 2 detalles con la misma superficie y perímetro. Estoy intentando encontrar una solución teniendo en cuenta más parámetros, como el número de segmentos, o la lista de ángulos entre segmentos... Creo que si tengo en cuenta la lista de segmentos con la lista de sus longitudes y la lista de ángulos entre cada segmento, eso sería suficiente.
0 votos
Bien, encontré la solución, primero la probaré cuando esté funcionando, luego publicaré mi respuesta aquí, de todas formas gracias.
0 votos
No puedo buscarlo ahora, pero hubo un video interesante en el canal de youtube de Numberphile este mes hablando sobre cómo detectar la singularidad de una forma (o un problema similar, no estoy seguro). Quizás quieras verlo.
0 votos
@Mark encontró la solución, ahora la estoy desarrollando, escribiré la respuesta más tarde cuando termine de probarla. Solo discúlpame, soy nuevo en "Mathematics" stack (solía estar en stackoverflow), ¿puede mi respuesta ser gráfica o puedo explicarla con un poco de código?
0 votos
@Siegfried.V Soy incluso más nuevo aquí que tú, así que no me preguntes :D Además, no estoy realmente interesado en tu problema en sí, solo estaba navegando y pensé que podría compartir lo poco que puedo.
0 votos
Una forma segura de asegurarse de que dos formas son iguales es comparar las distancias entre todos los puntos finales de los segmentos (no solo los adyacentes). Si puedes agrupar los puntos finales de cada una de las formas de modo que las distancias sean iguales en cada caso, entonces las dos formas son congruentes.
0 votos
@PaulSinclair wow muy bien, parece más fácil que mi solución... si pudieras agregar tu propia respuesta para que la acepte, sería bueno. De todos modos, no es suficiente verificar si hay simetría o no (si tienes alguna sugerencia, sería bienvenida), lo mismo para verificar cada radio (mi error, no precisé que también hay arcos).
0 votos
@PaulSinclair de hecho, acabo de entender que no está funcionando en mi caso (¿o no entendí la respuesta?), porque no sé dónde está el punto de inicio para cada forma. De todos modos, necesitaría calcular todas las distancias de cada punto a cada otro punto (por ejemplo, para un rectángulo necesito calcular 3*4 = 12 distancias, ¿verdad? para un hexágono 5*6=30 distancias).
0 votos
Posiblemente la transformación Hough generalizada contiene alguna forma de representar una forma de manera adecuada... Al menos se utiliza para encontrar ocurrencias de formas proporcionadas como entrada en una imagen...
0 votos
Posiblemente de interés: math.stackexchange.com/q/877424/18398
0 votos
@Joel no. De hecho, este es el mismo enlace que el que compartí, y si miras, agregué la condición "número de segmentos" que no es suficiente, como también demostró Eevee. De todos modos, encontré la solución en mi publicación a continuación, está funcionando perfectamente.
0 votos
@Siegfried.V "este es el mismo enlace que el que compartí" No. El que compartiste tiene el título "¿Pueden dos figuras [...]". El que compartí tiene el título "Polígonos con igual [...]"
0 votos
¿Son un par de formas quirales suficiente como contraejemplo, ya que no son superponibles? ¿O siguen siendo la misma "forma"?
0 votos
JoelReyesNoche ahah, bonito, no me di cuenta :). @Tom de hecho, el ejemplo antagónico de Hagen von Eitzen fue muy claro, pero esperaba encontrar también una solución sobre cómo resolver eso (olvidé que estaba en un foro matemático, así que la gente solo responde "lógicamente"). Aceptaré su respuesta ya que responde perfectamente a la pregunta inicial, simplemente para las próximas personas interesadas, dejo mi solución para resolver el problema.
0 votos
@Siegfried.V También podría interesarte "¿Puedes escuchar la forma de un tambor?", donde se investiga una colección mucho más grande de invariantes y se encuentra que es insuficiente.
0 votos
@HagenvonEitzen disculpa, pero no veo la razón. Al principio creí que era una broma (nunca había oído hablar de eso), luego leí al respecto (en Wikipedia), pero lo que leí es que diferentes formas pueden sonar igual, así que no entiendo cómo esto podría ayudar.