Dado un estándar nested circular treemap, ¿cómo se calcula dónde colocar los círculos?¿Cuál es el algoritmo para trazar una circular TreeMap?
5
A
Respuesta
1
Su problema principal se puede describir así: "Given a set of circles of varying radius, how does one place them within a larger circle, so that none of them overlap
".
Es un problema difícil, pero aquí es una solución de fuerza bruta para empezar:
- Ordenar los círculos de tamaño
- Coloque el círculo más grande en el borde interior del círculo delimitador
- Para el resto de los círculos (r1), haga lo siguiente:
- iterar sobre todos los pares de ya colocados círculos (R2, R3) (incluyendo la exterior)
- Encuentra la (uno o dos) puntos que tienen la distancia r1 + r2 al primer círculo y r1 + r3 al segundo círculo.
- Intenta colocar el nuevo círculo aquí.
los usos anteriores, la observación de que en un embalaje perfecto, cada círculo debe bordear a por lo menos otros dos círculos. Puede usar el algoritmo para proporcionar una búsqueda completa, o simplemente puede iterar aleatoriamente y elegir con avidez el primer lugar disponible.
Cuestiones relacionadas
- 1. ¿Cuál sería un buen algoritmo para una verificación circular de referencia en este caso?
- 2. ¿Cuál es el algoritmo detrás de sleep()?
- 3. ¿Cuál es el algoritmo Hi/Lo?
- 4. ¿Cuál es la diferencia entre un HashMap y un TreeMap?
- 5. ¿Cuál es el algoritmo para analizar expresiones en notación infija?
- 6. ¿Cuál es el algoritmo más rápido para realizar exponenciación?
- 7. ¿Cuál es el algoritmo eficiente para resolver rompecabezas Jigshaw?
- 8. ¿Cuál es el mejor algoritmo para la palabra más cercana
- 9. ¿Cuál es el algoritmo que usa opencv para encontrar contornos?
- 10. Algoritmo para "trazar" puntos secuenciales en curvas de bezier
- 11. ¿Cuál es el mejor algoritmo para hacer emparejamientos para una clasificación de fuentes multitudinarias?
- 12. ¿Cuál es la forma correcta de trazar una línea con el mouse en C#
- 13. Treemap en Python
- 14. ¿Cuál es el algoritmo para convertir una letra de columna de Excel en su número?
- 15. ¿Cuál es el algoritmo correcto para una curva de distribución logarmíntica entre dos puntos?
- 16. ¿Cuál es el algoritmo de clasificación más rápido para una pequeña cantidad de números enteros?
- 17. ¿Cuál es el algoritmo más rápido para ordenar una lista vinculada?
- 18. ¿Cuál es el algoritmo puramente funcional más eficiente para generar todos los prefijos de una lista?
- 19. ¿Cuál es actualmente el algoritmo de encriptación unidireccional más seguro?
- 20. ¿Cuál es el mejor algoritmo de derivación "llave en mano"?
- 21. ¿Cuál es el algoritmo óptimo "más general unificador"?
- 22. ¿Cuál es la diferencia entre un algoritmo y una función?
- 23. ¿Cuál es la diferencia entre una heurística y un algoritmo?
- 24. ¿Cuál es el mejor algoritmo de multiplicación de matrices?
- 25. ¿Cuál es el mejor algoritmo de clasificación de asientos reservados?
- 26. ¿Cuál es el algoritmo detrás de la generación de buscaminas
- 27. ¿Cuál es la diferencia entre el algoritmo de avance hacia atrás y el algoritmo de Viterbi?
- 28. ¿Cuál es el tiempo de ejecución de este algoritmo powerset
- 29. Algoritmo simplificado para calcular el espacio restante en un búfer circular
- 30. ¿cuál es el algoritmo para llenar de manera óptima un DVD para grabar
¿Ha mirado [aquí] (http://en.wikipedia.org/wiki/Treemapping#The_tiling_algorithm)? y [aquí] (http://www.jsoftware.com/jwiki/Treemap/Algorithms)? Además, ¿está posiblemente relacionado con esta [pregunta] (http://stackoverflow.com/questions/5371869/venn-diagram-generation-software-from-rcc8-specification-or-similar)? – MarcoS
+1 @MarcoS. Además, [aquí] (http://www.randelshofer.ch/treeviz/) es una implementación en Java (con código fuente) – CMR