Autor Tema: Ayuda para generar árbol informático.

0 Usuarios y 1 Visitante están viendo este tema.

19 Octubre, 2023, 06:26 am
Leído 114 veces

Tachikomaia

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 601
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
No hace mucho pregunté algo similar pero ahora lo tengo mucho más simplificado y es en gran parte una duda matemática.

Quiero que el programa produzca uno de estos:


Arriba aparecería el nodo ¡nicial, eso ya lo tengo, llamémosle 1.

Luego aparecería un nodo abajo, fácil, 2A sería el nombre:
Código: [Seleccionar]
                                         1
                                        2A

Luego podría aparecer otro nodo desde 1: 2B. Eso requeriría que 2A ya no esté exactamente abajo, sino abajo a la izquierda. Y 2B estaría en la derecha de 2A:
Código: [Seleccionar]
                                         1
                                       2A 2B

Y pueden aparecer 2C, 2D, etc. Los nombres son en base a la fila en que están, la letra es para diferenciarlos. En definitiva, cuando uno aparece, lo hace en la derecha de los demás y deben correrse hacia la izquierda. Digamos que cada nodo ocupa 20 píxeles. Si quiero que estén distanciados 20 píxeles también... ¿entonces qué proceso debería hacer? Es decir, cuánto resto a la posición X de los que están colocados, y en qué posición X pongo al nuevo. 1 está ubicado en 0.

Luego, desde 2A aparece 3A, y puede aparecer 3B, etc. Nada relevante aquí, creo.

Luego, desde 2B pueden surgir más 3s, y esto quizá requiera distanciar los de las filas anteriores (salvo la 1), en cuyo caso les pregunto cuánto, cómo hago esto.

Voy a intentar hacerlo sin cálculos y les muestro cómo quedan los nodos encima de otros (eso es lo que quiero que me ayuden a evitar), por si no entendieron y así lo ven, pero puede que tarde.

En cuanto a nodos repetidos, no hay problema. Lo ideal sería que no se repitan, es decir que se pueda llegar al mismo desde nodos anteriores, que pueda haber varias flechas apuntando al mismo, pero por ahora no intentaré eso. Si el nodo está repetido, no importa, lo pongo en gris y a partir de ahí se ignora.