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}

1 Answer 1

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

2
  • How experts on tikz draw any figures? do you use a special software for drawing? or you do it by trial and error?
    – user108724
    Jan 6, 2019 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, 2019 at 11:49

You must log in to answer this question.