Assíntota: Como faço uma lacuna em um segmento para incluir um rótulo?

Assíntota: Como faço uma lacuna em um segmento para incluir um rótulo?

Estou me perguntando como fazer uma lacuna em um segmento para incluir um rótulo? No meu código de exemplo, o ideal seria que o rótulo '16' estivesse em uma lacuna no meio do segmento com barra final.

Além disso, existe uma maneira mais eficiente de formatar o segmento com barra final para que ele corra paralelo ao segmento que mede?

Obrigado.

\documentclass{article}
\usepackage{asymptote}

\begin{document}

\begin{asy}
import olympiad;
import cse5;
size(4cm);
pair G,T,P,Q,A,B;
G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);A=(0,2); B=(16,2);
draw(G--Q--P--G);
draw(Q--T);
draw(A--B, Bars);
draw(rightanglemark(G,T,Q,45));
draw(rightanglemark(P,Q,G,45));
label("$y$",align=N,point(G--T,0.5));
label("$12$",align=SW,point(G--Q,0.5));
label("$16$",midpoint(A--B),N);
\end{asy}

\end{document}

Responder1

Isso é quase literalmente copiado do exemplo da pág. 42 deesse lindo tutorial. Também prefiro usar o asypictureBestilo do autor do manual. Com isso, você só precisa pdflatex -shell-escapeexecutar

\documentclass{standalone}
\usepackage{asypictureB}

\begin{document}

\begin{asypicture}{name=Label}
import olympiad;
//import cse5;
size(4cm);
pair G,T,P,Q,A,B;
G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);A=(0,2); B=(16,2);
draw(G--Q--P--G);
draw(Q--T);
draw(rightanglemark(G,T,Q,45));
draw(rightanglemark(P,Q,G,45));
label("$y$",align=N,point(G--T,0.5));
label("$12$",align=SW,point(G--Q,0.5));
//label("$16$",midpoint(A--B),N);
pen fillpen = white;
Label mylabel = Label("$16$", align=(0,0), position=MidPoint,
filltype=Fill(fillpen));
draw(A--B, L=mylabel, Bars);
\end{asypicture}

\end{document}

obter

insira a descrição da imagem aqui

Observe que baixado olympiad.asydeesse site. cse5.asynão era necessário.

Responder2

Outra possibilidade é usar geometry.asyo que fornece markrightangleuma distancerotina. Encontre o código

  import geometry;
  size(4cm);
  pair G,T,P,Q;
  G=(0,0); T=(9,0); P=(16,0); Q=(9,-7.937);
  draw(G--Q--P--G);
  draw(Q--T);
  perpendicularmark(T, dir(-135));
  markrightangle(P,Q,G);
  label("$y$",align=N,point(G--T,0.5));
  label("$12$",align=SW,point(G--Q,0.5));

  distance("$16$",G,P,-6mm);

e o resultado

insira a descrição da imagem aqui

informação relacionada