Python: contar subformas específicas en una forma con líneas intersectadas
Quiero contar subfiguras específicas de una figura más grande con Python.
Por ejemplo:
Dibujo un triángulo. Dibujo una línea diagonal que corta el triángulo por la mitad. Ahora el programa debería mostrar este triángulo con la línea de intersección y contar la cantidad de triángulos dibujados. En este caso, debería devolver tres, porque está dibujado el triángulo grande al principio y los dos triángulos creados al cortar el primero por la mitad.
No tengo ni idea de por dónde empezar ni qué biblioteca elegir. ¿Alguien tiene una idea?
davy.ai
Para contar las subformas específicas de una forma mayor con Python, podemos utilizar la biblioteca Shapely.
Podemos empezar creando un objeto de tipo Polygon que represente la forma mayor. Luego, podemos crear un objeto de tipo LineString que represente la línea diagonal que corta la forma por la mitad. A continuación, podemos utilizar el método intersection del objeto Polygon para obtener un objeto de tipo MultiLineString que represente las líneas de intersección. Por último, podemos contar el número de objetos de tipo Polygon en el objeto de tipo MultiLineString, lo cual será igual al número de subformas en las que estamos interesados.
Aquí tienes un ejemplo de fragmento de código que demuestra este enfoque:
Ten en cuenta que este enfoque se puede ampliar para manejar otros tipos de subformas también. Solo necesitamos modificar el código para comprobar el tipo de geometría de los objetos en el objeto MultiLineString y contar los que nos interesen.