Tengo polígonos definidos con sus vértices, y necesito calcular las áreas de su unión e intersección. Lo más inquietante es que está implementado en Mapping Toolbox, pero no puedo comprarlo. ¿Alguien sabe cómo hacer un algoritmo rápido para calcularlo? Gracias por su tiempo.intersección y unión de polígonos
Respuesta
He encontrado puntos de intersección de mis polígonos y ha añadido vértices que se encuentran dentro/polígonos fuera para la tarea intersección/unión (comprobar si alguno de los vértices del polígono 1 se encuentra dentro de un versa polígono 2 y vice usando 'inpolygon '). Luego, todos los puntos se transformaron en coordenadas polares con el centro en las coordenadas medias de la matriz y se ordenaron por ángulo, de modo que ahora forman un contorno cerrado consecutivo. Sabiendo esto, es fácil encontrar el área de intersección/unión usando 'polyarea'.
lo haría así:
- Vamos S el conjunto de vértices de ambos polígonos.
- para cada borde e en polígono 1
- para cada borde e en polígono 2
- Si e cruza con e
- Añadir el punto de intersección a S
- Si e cruza con e
- para cada borde e en polígono 2
- Retire todos los vértices en S que están dentro del polígono 1 o 2.
El conjunto resultante de vértices debe compensar la unión de los polígonos.
para la intersección sólo tiene que quitar todos los vértices en S que son fuera de ambos polígono 1 y 2 (en la tercera etapa).
(Se puede consultar el punto de intersección y "dentro de polígonos" se utiliza para comprobar otra parte ;-)
gracias por su respuesta, pero ¿cómo puedo encontrar puntos de intersección? ¿Es necesario usar la ecuación de una línea? – Kate
Agregué dos enlaces a mi respuesta. – aioobe
gracias. Sé matemáticas, pero desafortunadamente no soy un programador muy bueno, por lo que tener códigos es muy bueno. – Kate
La idea es romper todos los cruzan el borde en cuatro partes y formar un nuevo polígono con estos. Cuando desee la unión, tome los dos bordes externos. Si quieres intersección, toma los dos bordes internos.
Una gran respuesta daría un ejemplo. –
Solo necesita encontrar el área de intersección; el área de la unión se obtiene trivialmente de eso. El paquete PolygonIntersection de FEX podría ser útil.
¿Puedes mostrar un pseudocódigo para que podamos implementarlo en otros idiomas también? – Pacerier
- 1. Tipos de unión y tipos de intersección
- 2. Unión e Intersección en Django
- 3. Unión e intersección en PowerShell?
- 4. tr1 :: unordered_set unión e intersección
- 5. intersección de polígono rectilíneo
- 6. Conseguir unión, intersección, o diferencia de conjuntos en C++
- 7. Objetos gráficos SVG/vector operaciones booleanas (unión, intersección, sustracción)
- 8. Cómo hacer unión, intersección, diferencia e invertir datos en java
- 9. En SQL, ¿una unión es en realidad una intersección? ¿Y también es un enlace o una "Unión Sideway"?
- 10. CGAL: ¿intersección entre un segmento y un polígono?
- 11. Puntos, líneas y polígonos en esferas con C/C++
- 12. Combinación de polígonos y mapas de Voronoi
- 13. Segmento-polígono intersección
- 14. ¿Cómo se cruzan dos polígonos?
- 15. intersección de lista en Java
- 16. Ray y cara 3D Intersección
- 17. Redimensionar y arrastrar polígonos SVG dinámicamente
- 18. OpenGL: crear polígonos complejos y suavizadas
- 19. Diferencia entre unión interna y unión completa
- 20. ¿hay una unión e intersección con la implementación de Haskell Prelude?
- 21. Coordenadas de intersección entre Ray y Plano
- 22. Intersección del segmento de línea y línea
- 23. cómo simular una unión rectangular comenzando con una intersección de rectángulo
- 24. ¿Cómo puedo determinar si dos polígonos convexos se cruzan?
- 25. Obtener polígonos simples
- 26. polígonos "ajustados" juntos
- 27. yylval y unión
- 28. r puntos en polígonos
- 29. Convierta polígonos en malla
- 30. Intervalo establece el álgebra en R (unión, intersección, diferencia, la inclusión, ...)
La función es 'polybool'. Y puedo calcular el área con 'polyarea' (que está disponible para mí). – Kate
Creo que no debes pedirle a los usuarios que violen los derechos de autor. Editado –
@Kate: ¿Sus polígonos están garantizados para ser convexos? – Jacob