Here is an alternative done with Metapost for comparison.

This was produced by compiling the following source with lualatex
. I have included comments to try to explain the approach.
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
% start with the two lines
path ell, ell';
ell = (20 down -- 144 up) rotated 32;
ell' = ell reflectedabout(up, down);
% draw them and label the intersection at the origin
draw ell; draw ell';
dotlabel.rt("$y$", origin);
label.top("$\ell$", point 1 of ell);
label.top("$\ell'$", point 1 of ell');
% now define two sets of points along each line
pair p[], q[];
p1 = point 3/4 of ell;
q1 = point 3/4 of ell';
p2 = point 3/8 of ell;
q2 = point 3/8 of ell';
% p3, q3 are the midpoints
p3 = 1/2[p1, p2];
q3 = 1/2[q1, q2];
% and now some points shifted off to the sides..
p11 = p1 shifted 30 left;
p12 = (xpart p11, ypart p2);
p13 = (xpart p11, ypart p3);
q11 = q1 shifted 40 right;
q12 = (xpart q11, ypart q2);
q13 = (xpart q11, ypart q3);
% draw the loop through all these points using the "Hobby" syntax
draw q12 {right} .. {left} q13 -- q3 -- q13 {right} .. {left} q11 --
p11 {left} .. {right} p13 -- p3 -- p13 {left} .. {right} p12 --
cycle;
% note that drawing `q11 -- p11` goes through q1 and p1
% because of the way they were defined above,
% add the remaining labels
label.ulft("$\overline{p_1 q_1}$", q11);
label.ulft("$\overline{p_2 q_2}$", q12);
dotlabel.llft("$p_1$", p1);
dotlabel.llft("$p_2$", p2);
dotlabel.lrt("$q_1$", q1);
dotlabel.lrt("$q_2$", q2);
dotlabel.rt("$z$", p3);
dotlabel.lft("$z$", q3);
endfig;
\end{mplibcode}
\end{document}
out
andin
. You could draw an arc at the end of straight lines. You could use straight edges withrounded corners
. How should these lines look exactly? Can you provide the rest of the diagram?calc
library:\documentclass[tikz]{standalone} \usetikzlibrary{calc} \begin{document}\tikz{ \node[circle,fill] (A) at (0,0) {}; \node[circle,fill] (B) at (2,2) {}; \draw ($(A)!-1!(B)$) -- ($(A)!2!(B)$); }\end{document}
. Explanation:($(A)!0!(B)$)
means "0% on the way from(A)
to(B)
" (which is at(A)
), but you can also say "at 200% on the way from(A)
to(B)
" or even "at -100% on the way from(A)
to(B)
" to define coordinates that lie outside but are still on the thought line that goes through(A)
and(B)
.