diagrama de árbol (secuencia) en asíntota

diagrama de árbol (secuencia) en asíntota

Quiero dibujar un diagrama de árbol con asíntota. Pero tengo algunos problemas.

Busqué y encontré 2 sugerencias en la web. http://asymptote.sourceforge.net/FAQ/section4.html http://asymptote.sourceforge.net/doc/Frames-and-pictures.html

Usando estos consejos, y traté decajayárboles.

settings.outformat="pdf";
unitsize(5cm);

usepackage(amsmath);

frame f1;
label(f1, "$\mathbb{N} \models A(0)$", Draw);
add(f1, (0, 5))

frame f2;
label(f2, "$\mathbb{N} \models A(1)$", Draw);
add(f2, (0, 4));

draw(f1 -- f2);

Pero esto no funciona. Últimodibujar(f1 - f2);El comando es incorrecto.

dibujarLos comandos necesitan coordinar. Pero este método... no es inteligente (para mí).

Yo quieroconectar2 cajas. ¿Cómo puedo conectar 2 objetos?

encontréárbol de dibujomódulo en el PDF de tutoriales oficiales, pero parece difícil de usar de manera flexible (¿se puede cambiar la forma del árbol?).

Si hay una manera de usar fácilmenteárbol de dibujomódulo, ¿dirías eso?

Gracias.

Respuesta1

El siguiente código funciona como un asymptotescript independiente. No he usado el drawtreemódulo así que no puedo ayudarte con eso. En mi código, no estoy usando marcos. En cambio, cada etiqueta se dibuja en la imagen predeterminada.

texpreamble("\usepackage{amssymb}");
settings.outformat="pdf";
unitsize(5cm);

pair p1 = (0, 5);
pair p2 = (0, 4);

draw(p1--p2);

label("$\mathbb{N} \models A(0)$", p1, FillDraw(white, black));
label("$\mathbb{N} \models A(1)$", p2, FillDraw(white, black));

ingrese la descripción de la imagen aquí

Respuesta2

Dado que las metodologías alternativas son generalmente aceptables, no puedo resistirme a proporcionar unabosquesolución.

math contentPone el contenido de todos los nodos en modo matemático, evitando la necesidad de $...$. drawDibuja un borde alrededor de cada nodo del árbol.

Los nodos se conectan automáticamente: de padre a hijo para cada relación padre-hijo. (Úselo <node content>, no edgepara excepciones). He especificado l sepque coincida con lo unitdefinido en el código original. Esta es la distancia mínima entre niveles del árbol. (5 cm es mucho).

bosqueno necesita coordenadas explícitas. Automáticamente formateará el árbol.

\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{forest,amssymb}
\begin{document}
\begin{forest}
  for tree={
    draw,
    math content,
    l sep=50mm,
  }
  [\mathbb{N} \models A(0)
    [\mathbb{N} \models A(1)]
  ]
\end{forest}
\end{document}

solución alternativa

Modificar la apariencia del árbol es muy fácil. Simplemente alteras el preámbulo del forestmedio ambiente.

Por ejemplo,

   for tree={
    draw=red,
    thick,
    edge={blue, thick, <->},
    fill=red!10,
    math content,
    l sep=50mm,
    grow=45,
  }

produce

árbol alterado

mientras que la especificación del árbol en sí sigue siendo idéntica

  [\mathbb{N} \models A(0)
    [\mathbb{N} \models A(1)]
  ]

información relacionada