5

How to draw a horn with tikz?

enter image description here

\begin{tikzpicture}
%\draw [help lines] grid (-4,-4) (4,4);
\draw (-4,-4) arc (120:420: 5 and .75);
\draw[semithick,domain=2.4:.1,smooth,variable=\t]
plot ({-1.35-\t},{-2.2-3*ln(\t)});
\draw[semithick,domain=2.4:.1,smooth,variable=\t]
plot ({-1+\t},{-2.2-3*ln(\t)});
\end{tikzpicture}
9

I'm certain there is a better way of doing this, but this may help you get started

\documentclass[tikz, border = 5pt]{standalone}

\usetikzlibrary{intersections, calc}

\begin{document}
\begin{tikzpicture}[semithick]
  \path (0, 1) arc (90 : 120 : 5 and 1) coordinate (A) arc (120 : 420 : 5  and 1) coordinate (B);

  \draw (A) arc (120 : 420 : 5  and 1);
  \draw (-0.7, 8) to[out = -90, in = 40] coordinate[pos = 0.3](C) (-3.4, 0);
  \draw (0.7, 8) to[out = -90, in = 140] coordinate[pos = 0.3](D) (3.4, 0);
  \draw[dashed] (D) .. controls ($(D)+(-0.1,0.8)$) and ($(C)+(0.1,0.8)$) .. (C);

  \draw[name path = path 1] (D) to[out = -90, in = 20] (-3.4, -0.5);
  \draw[name path = path 2] (C) to[out = -90, in = 140] (2.5, -0.2);
  \draw[name path = path 3] (-2, 0.5) to[out = 10, in = 210] (1.5, 1.7);

  \fill[blue, name intersections = {of = path 1 and path 3}] (intersection-1) circle (0.1);
  \fill[blue, name intersections = {of = path 2 and path 3}] (intersection-1) circle (0.1);


\end{tikzpicture}
\end{document}

enter image description here

  • How experts on tikz draw any figures? do you use a special software for drawing? or you do it by trial and error? – C.F.G Jan 6 at 3:37
  • 1
    @C.F.G You can try with this, but I wouldn't recommend it, since it will stop you from learning the basics. This is a great place to start, ask questions and try to figure out why the solutions work, I guarantee you, you will be drawing fancy tikz diagrams sooner than you expect – caverac Jan 6 at 11:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.