2

I'm trying to use tikzpicture to draw the different conics.

To finish, I want to reflect the two arcs I drew around the y axis to get a hyperbola but I don't know how to do that. The reflected part does not appear where I want it to.

This is my code:

\begin{tikzpicture}

\draw (0,0) ellipse (1cm and 0.3cm);

\draw (0,-3) -- (-1,0); 

\draw (0,-3) -- (1,0);

\draw (-1,-6) -- (0,-3);

\draw (1,-6) -- (0,-3);

\draw (0,-6) ellipse (1cm and 0.3 cm);

\draw (2,-3) circle (0.75cm);

\draw (4.5,-3) ellipse (1cm and 0.4 cm);

\draw (7,-3.5) parabola (6.5,-2) ;

\draw (7,-3.5) parabola (7.5,-2);

\draw (9, -2.5) arc (5:45:2);

\draw (9, -2.5) arc (5:-45:2);

\end{tikzpicture}

I get this:

enter image description here

To reflect the arcs I use this code:

\begin{scope}[yscale=1,xscale=-1]
\draw (9, -2.7) arc (5:45:1);
\draw (9, -2.7) arc (5:-45:1);
\end{scope}

But then I get this:

enter image description here

Can someone help me fix this ? Any help is appreciated. Thank you all in advance !

3

The reason why the arc moves so far is that the horizontal coordinate 9 gets mapped to -9. One convenient way of reflecting things is to draw them in a pic, which can be reflected (or transformed otherwise). I do not know the relation between the two arcs, but you may adjust the horizontal coordinate, which is now -0.5, to get what you want. (Or you give me a hint.)

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[pics/my arc/.style={code={
\draw (-0.5, -2.5) arc (5:45:2);
\draw (-0.5, -2.5) arc (5:-45:2);}}]

\draw (0,0) ellipse (1cm and 0.3cm);

\draw (0,-3) -- (-1,0); 

\draw (0,-3) -- (1,0);

\draw (-1,-6) -- (0,-3);

\draw (1,-6) -- (0,-3);

\draw (0,-6) ellipse (1cm and 0.3 cm);

\draw (2,-3) circle (0.75cm);

\draw (4.5,-3) ellipse (1cm and 0.4 cm);

\draw (7,-3.5) parabola (6.5,-2) ;

\draw (7,-3.5) parabola (7.5,-2);

\path (9,0) pic {my arc} pic[xscale=-1] {my arc};

\end{tikzpicture}
\end{document}

enter image description here

Alternatively you could introduce a style that reflects at shifted x or y axes.

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[reflect at x/.style={xshift=#1*1cm,xscale=-1,xshift=-1*#1*1cm},
reflect at y/.style={yshift=#1*1cm,yscale=-1,yshift=-1*#1*1cm}]
 \draw (0,0) ellipse (1cm and 0.3cm);
 \draw (0,-3) -- (-1,0); 
 \draw (0,-3) -- (1,0);
 \draw (-1,-6) -- (0,-3);
 \draw (1,-6) -- (0,-3);
 \draw (0,-6) ellipse (1cm and 0.3 cm);
 \draw (2,-3) circle (0.75cm);
 \draw (4.5,-3) ellipse (1cm and 0.4 cm);
 \draw (7,-3.5) parabola (6.5,-2) ;
 \draw (7,-3.5) parabola (7.5,-2);
 \draw (9, -2.5) arc (5:45:2);
 \draw (9, -2.5) arc (5:-45:2);
 \begin{scope}[reflect at x=9.5]
  \draw (9, -2.5) arc (5:45:2);
  \draw (9, -2.5) arc (5:-45:2);
 \end{scope}
\end{tikzpicture}
\end{document}

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.