Me pregunto cómo hacer un espacio en un segmento para incluir una etiqueta. En mi código de ejemplo, lo ideal sería que la etiqueta '16' estuviera en un espacio en el medio del segmento con barra final.
Además, ¿existe una manera más eficiente de formatear el segmento con barra final para que corra paralelo al segmento que mide?
Gracias.
\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}
Respuesta1
Esto está copiado casi literalmente del ejemplo de la p. 42 deeste bonito tutorial. También prefiero usar el asypictureB
estilo del autor del manual. Con esto, sólo necesitas pdflatex -shell-escape
ejecutar
\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}
Llegar
Tenga en cuenta que descargado olympiad.asy
desdeeste sitio web. cse5.asy
no era necesario.
Respuesta2
Otra posibilidad es utilizar geometry.asy
lo que proporciona markrightangle
una distance
rutina. Por favor encuentra el 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);
y el resultado