10

I have specified an ellipse and three points in the following way:

\def\aa{2.5}
\def\bb{2}
\draw[thick] (0,0) ellipse [x radius=\aa,y radius=\bb];
\pgfmathsetmacro{\focus}{sqrt(\aa*\aa-\bb*\bb)}
\path coordinate (c) at (0,0)
coordinate (d) at (-\focus,0)
coordinate (r) at ($(0,0)+(36:{\aa} and {\bb})$);
\fill (c) circle (2pt)
(d) circle (2pt)
(r) circle (2pt);

Now I need

  1. a tangent vector to the ellipse through (r);
  2. a line parallel to this tangent through (c);
  3. a coordinate at the intersection of this last line with the line joining (r) and (d).

I cannot seem to find a solution to 1. that allows me to solve 2. and 3. Any suggestions, please?

12

Here's a way of accomplishing this using the approach from How to draw tangent line of an arbitrary point on a path in TikZ

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, decorations.markings, intersections}
\begin{document}
\begin{tikzpicture}[
    tangent/.style={
        decoration={
            markings,% switch on markings
            mark=
                at position #1
                with
                {
                    \coordinate (tangent point-\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}) at (0pt,0pt);
                    \coordinate (tangent unit vector-\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}) at (1,0pt);
                    \coordinate (tangent orthogonal unit vector-\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}) at (0pt,1);
                }
        },
        postaction=decorate
    },
    use tangent/.style={
        shift=(tangent point-#1),
        x=(tangent unit vector-#1),
        y=(tangent orthogonal unit vector-#1)
    },
    use tangent/.default=1
]

\def\aa{3.5}
\def\bb{2}
\pgfmathsetmacro{\focus}{sqrt(\aa*\aa-\bb*\bb)}

\draw[thick, tangent=0.07] (0,0) ellipse [x radius=\aa,y radius=\bb];

\path coordinate (c) at (0,0)
    coordinate (d) at (-\focus,0);
\fill (c) circle (2pt)
    (d) circle (2pt);

\fill (tangent point-1) circle [radius=2pt];
\draw [red, name path=rd] (tangent point-1) -- (d);
\draw [use tangent] (2,0) -- (-2,0);
\draw [use tangent, red, name path=parallel] (c) ++(2,0) -- +(-4,0);

\fill [red, name intersections={of={rd and parallel}}] (intersection-1) circle [radius=2pt];
\end{tikzpicture}

\end{document}
  • @jake: do you mind explaining the last \draw command? I cannot figure out why that ends up going through (c)? Replacing (c) with (0,0) does not give the correct answer. – daleif Apr 10 '13 at 13:42
  • @jake, I know, but I do not understand why it ends up at (c) instead of (tangent point-1) – daleif Apr 10 '13 at 14:04
  • @daleif: We are talking about \draw [use tangent, red, name path=parallel] (c) ++(2,0) -- +(-4,0);, right? The line goes through (c) because nodes do not get transformed by the coordinate transformation (so while (0,0) is at a different place if we use use tangent, (c) is still at the same place). – Jake Apr 10 '13 at 14:08
  • @jake that is it, takes a bit you get ones head twisted through that one. – daleif Apr 10 '13 at 14:10
  • 1
    Very interesting, I discover with your answer the /pgf/decoration/mark info/sequence number and how to use it – Alain Matthes Apr 10 '13 at 17:08
7

enter image description here

And Asymptote version, ellipse.asy along with a translation to tikz via svg

size(300);
void Dot(... pair[] p){ //  function takes a variable number of arguments
  for(int i=0;i<p.length;++i){
    fill(shift(p[i])*scale(0.06)*unitcircle,black);
    fill(shift(p[i])*scale(0.04)*unitcircle,white);
  }
}
real a=2.5, b=2, focus=sqrt(a*a-b*b);
pair c=(0,0), d=(-focus,0);
path el=ellipse(c,a,b);
path tline=rotate(36)*(c--(2a,0));
real tr=intersect(el,tline)[0];
pair r=point(el,tr);
pair tan_dir=dir(el,tr);
path tan_line=scale(b)*(-tan_dir--tan_dir);
pair w=intersectionpoint(d--r,shift(c)*tan_line);

pen linePen=darkblue+1.2pt;
pen elPen=red+1.5pt;

draw(el,elPen); draw(d--r,linePen);
draw(shift(r)*tan_line,linePen);
draw(shift(c)*tan_line,linePen);
Dot(c,d,r,w);
label("$C$",c,NE);label("$D$",d,NW);
label("$R$",r,NE);label("$W$",w,S);

run asy ellipse.asy to get ellipse.eps or asy -f pdf ellipse.asy to get ellipse.pdf. Or put it inside the asy environment in a LaTeX document (see texdoc asymptote).

Edit: Some comments added.

A user defined function to draw a list of dots, to be used later as Dot(c,d,r,w);:

void Dot(... pair[] p){ //  function takes a variable number of arguments
  for(int i=0;i<p.length;++i){
    fill(shift(p[i])*scale(0.06)*unitcircle,black);
    fill(shift(p[i])*scale(0.04)*unitcircle,white);
  }
}

The function Dot is defined with ... pair[] p construction, that means it is able to accept a variable number of arguments, all of them will be placed in an array of pairs (2D coordinates) p[].

real a=2.5, b=2, focus=sqrt(a*a-b*b);

defines dimensions.

pair c=(0,0), d=(-focus,0);

defines points c and d by x,y coordinates.

path el=ellipse(c,a,b);

defines a curve (ellipse outline) to be used later;

path tline=rotate(36)*(c--(2a,0));

defines a straight line as a rotated by 36 degrees horizontal line c--(2a,0)

real tr=intersect(el,tline)[0];

defines a so-called intersection time, a parameter t for the path el, which corresponds to the point of intersection of tline with the ellipse outline el.

pair r=point(el,tr);

define the point of intersection itself.

pair tan_dir=dir(el,tr);

defines a tangent direction at the point r (at time tr).

path tan_line=scale(b)*(-tan_dir--tan_dir);

defines a line through the origin parallel to the tangent.

pair w=intersectionpoint(d--r,shift(c)*tan_line);

defines an intersection point of interest, between the line d--r and a line parallel to the tangent through the origin (point c).

pen linePen=darkblue+1.2pt;
pen elPen=red+1.5pt;

defined are pens (color and width) to be used for lines and ellipse

draw(el,elPen); draw(d--r,linePen);

draw the ellipse and the line d--r

draw(shift(r)*tan_line,linePen);
draw(shift(c)*tan_line,linePen);

draw two parallel lines through points r and c, using defined function Dot.

Dot(c,d,r,w);

draw fancy dots at all four points c,d,r,w.

label("$C$",c,NE);label("$D$",d,NW);
label("$R$",r,NE);label("$W$",w,S);

and finally, draw labels, formatted as a (La)TeX string (e.g. "$C$") at specified position (e.g. ,c), oriented as specified (e.d. NE means to the North-West of the point).

Edit2: tikz translation added

Thanks to Harish Kumar for his answer [here][2], I've just installed inkscape2tikz from [source][3] and after running asy -f svg ellipse.asy svg2tikz ellipse.svg > ellipse.tex here it is a LaTeX document with tikz solution, translated from the ellipse.asy code shown above:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}

\begin{document}
\definecolor{cff0000}{RGB}{255,0,0}
\definecolor{c000040}{RGB}{0,0,64}
\definecolor{cffffff}{RGB}{255,255,255}


\begin{tikzpicture}[y=0.80pt,x=0.80pt,yscale=-1, inner sep=0pt, outer sep=0pt]
\begin{scope}[cm={{0.996,0.0,0.0,0.996,(0.0,0.0)}}]
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[draw=cff0000,line join=round,line cap=round,miter limit=10.04,line
      width=1.200pt] (75.2812,0.0000) .. controls (75.2812,-33.2613) and
      (41.5767,-60.2250) .. (0.0000,-60.2250) .. controls (-41.5767,-60.2250) and
      (-75.2812,-33.2613) .. (-75.2812,-0.0000) .. controls (-75.2812,33.2613) and
      (-41.5767,60.2250) .. (0.0000,60.2250) .. controls (41.5767,60.2250) and
      (75.2812,33.2613) .. (75.2812,0.0000) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[draw=c000040,line join=round,line cap=round,miter limit=10.04,line
      width=0.960pt] (-45.1687,-0.0000) -- (55.7293,-40.4897);
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[draw=c000040,line join=round,line cap=round,miter limit=10.04,line
      width=0.960pt] (100.9330,-0.6942) -- (10.5257,-80.2853);
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[draw=c000040,line join=round,line cap=round,miter limit=10.04,line
      width=0.960pt] (45.2036,39.7955) -- (-45.2036,-39.7955);
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=black] (1.8068,0.0000) .. controls (1.8068,-0.9978) and
      (0.9978,-1.8068) .. (0.0000,-1.8068) .. controls (-0.9978,-1.8068) and
      (-1.8068,-0.9978) .. (-1.8068,-0.0000) .. controls (-1.8068,0.9978) and
      (-0.9978,1.8068) .. (0.0000,1.8068) .. controls (0.9978,1.8068) and
      (1.8068,0.9978) .. (1.8068,0.0000) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=cffffff] (1.2045,0.0000) .. controls (1.2045,-0.6652) and
      (0.6652,-1.2045) .. (0.0000,-1.2045) .. controls (-0.6652,-1.2045) and
      (-1.2045,-0.6652) .. (-1.2045,-0.0000) .. controls (-1.2045,0.6652) and
      (-0.6652,1.2045) .. (0.0000,1.2045) .. controls (0.6652,1.2045) and
      (1.2045,0.6652) .. (1.2045,0.0000) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=black] (-43.3620,-0.0000) .. controls (-43.3620,-0.9978) and
      (-44.1709,-1.8068) .. (-45.1687,-1.8068) .. controls (-46.1666,-1.8068) and
      (-46.9755,-0.9978) .. (-46.9755,-0.0000) .. controls (-46.9755,0.9978) and
      (-46.1666,1.8068) .. (-45.1687,1.8068) .. controls (-44.1709,1.8068) and
      (-43.3620,0.9978) .. (-43.3620,-0.0000) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=cffffff] (-43.9642,-0.0000) .. controls (-43.9642,-0.6652) and
      (-44.5035,-1.2045) .. (-45.1687,-1.2045) .. controls (-45.8340,-1.2045) and
      (-46.3732,-0.6652) .. (-46.3732,-0.0000) .. controls (-46.3732,0.6652) and
      (-45.8340,1.2045) .. (-45.1687,1.2045) .. controls (-44.5035,1.2045) and
      (-43.9642,0.6652) .. (-43.9642,-0.0000) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=black] (57.5361,-40.4897) .. controls (57.5361,-41.4876) and
      (56.7272,-42.2965) .. (55.7293,-42.2965) .. controls (54.7315,-42.2965) and
      (53.9226,-41.4876) .. (53.9226,-40.4897) .. controls (53.9226,-39.4919) and
      (54.7315,-38.6830) .. (55.7293,-38.6830) .. controls (56.7272,-38.6830) and
      (57.5361,-39.4919) .. (57.5361,-40.4897) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=cffffff] (56.9338,-40.4897) .. controls (56.9338,-41.1550) and
      (56.3946,-41.6942) .. (55.7293,-41.6942) .. controls (55.0641,-41.6942) and
      (54.5248,-41.1550) .. (54.5248,-40.4897) .. controls (54.5248,-39.8245) and
      (55.0641,-39.2852) .. (55.7293,-39.2852) .. controls (56.3946,-39.2852) and
      (56.9338,-39.8245) .. (56.9338,-40.4897) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=black] (-12.3358,-12.4506) .. controls (-12.3358,-13.4484) and
      (-13.1447,-14.2573) .. (-14.1426,-14.2573) .. controls (-15.1404,-14.2573) and
      (-15.9493,-13.4484) .. (-15.9493,-12.4506) .. controls (-15.9493,-11.4528) and
      (-15.1404,-10.6438) .. (-14.1426,-10.6438) .. controls (-13.1447,-10.6438) and
      (-12.3358,-11.4528) .. (-12.3358,-12.4506) -- cycle;
  \end{scope}
  \begin{scope}[cm={{1.0,0.0,0.0,1.0,(207.183,174.51)}}]
    \path[fill=cffffff] (-12.9381,-12.4506) .. controls (-12.9381,-13.1158) and
      (-13.4774,-13.6551) .. (-14.1426,-13.6551) .. controls (-14.8078,-13.6551) and
      (-15.3471,-13.1158) .. (-15.3471,-12.4506) .. controls (-15.3471,-11.7854) and
      (-14.8078,-11.2461) .. (-14.1426,-11.2461) .. controls (-13.4774,-11.2461) and
      (-12.9381,-11.7854) .. (-12.9381,-12.4506) -- cycle;
  \end{scope}
  \begin{scope}[shift={(209.733,171.904)}]
    \path (8.9640,-8.3400) .. controls (8.9640,-8.4480) and (8.8800,-8.4480) ..
      (8.8560,-8.4480) .. controls (8.8320,-8.4480) and (8.7840,-8.4480) ..
      (8.6880,-8.3280) -- (7.8600,-7.3200) .. controls (7.4400,-8.0400) and
      (6.7800,-8.4480) .. (5.8800,-8.4480) .. controls (3.2880,-8.4480) and
      (0.6000,-5.8200) .. (0.6000,-3.0000) .. controls (0.6000,-0.9960) and
      (2.0040,0.2520) .. (3.7560,0.2520) .. controls (4.7160,0.2520) and
      (5.5560,-0.1560) .. (6.2520,-0.7440) .. controls (7.2960,-1.6200) and
      (7.6080,-2.7840) .. (7.6080,-2.8800) .. controls (7.6080,-2.9880) and
      (7.5120,-2.9880) .. (7.4760,-2.9880) .. controls (7.3680,-2.9880) and
      (7.3560,-2.9160) .. (7.3320,-2.8680) .. controls (6.7800,-0.9960) and
      (5.1600,-0.0960) .. (3.9600,-0.0960) .. controls (2.6880,-0.0960) and
      (1.5840,-0.9120) .. (1.5840,-2.6160) .. controls (1.5840,-3.0000) and
      (1.7040,-5.0880) .. (3.0600,-6.6600) .. controls (3.7200,-7.4280) and
      (4.8480,-8.1000) .. (5.9880,-8.1000) .. controls (7.3080,-8.1000) and
      (7.8960,-7.0080) .. (7.8960,-5.7840) .. controls (7.8960,-5.4720) and
      (7.8600,-5.2080) .. (7.8600,-5.1600) .. controls (7.8600,-5.0520) and
      (7.9800,-5.0520) .. (8.0160,-5.0520) .. controls (8.1480,-5.0520) and
      (8.1600,-5.0640) .. (8.2080,-5.2800) -- (8.9640,-8.3400) -- cycle;
  \end{scope}
  \begin{scope}[shift={(149.391,171.904)}]
    \path (1.8840,-0.8880) .. controls (1.7760,-0.4680) and (1.7520,-0.3480) ..
      (0.9120,-0.3480) .. controls (0.6840,-0.3480) and (0.5640,-0.3480) ..
      (0.5640,-0.1320) .. controls (0.5640,0.0000) and (0.6360,0.0000) ..
      (0.8760,0.0000) -- (4.6800,0.0000) .. controls (7.1040,0.0000) and
      (9.4680,-2.5080) .. (9.4680,-5.1840) .. controls (9.4680,-6.9120) and
      (8.4360,-8.1960) .. (6.7200,-8.1960) -- (2.8680,-8.1960) .. controls
      (2.6400,-8.1960) and (2.5320,-8.1960) .. (2.5320,-7.9680) .. controls
      (2.5320,-7.8480) and (2.6400,-7.8480) .. (2.8200,-7.8480) .. controls
      (3.5520,-7.8480) and (3.5520,-7.7520) .. (3.5520,-7.6200) .. controls
      (3.5520,-7.5960) and (3.5520,-7.5240) .. (3.5040,-7.3440) -- (1.8840,-0.8880)
      -- cycle(4.4160,-7.3800) .. controls (4.5240,-7.8240) and (4.5720,-7.8480) ..
      (5.0400,-7.8480) -- (6.3600,-7.8480) .. controls (7.4880,-7.8480) and
      (8.5200,-7.2360) .. (8.5200,-5.5800) .. controls (8.5200,-4.9800) and
      (8.2800,-2.8920) .. (7.1160,-1.5720) .. controls (6.7800,-1.1760) and
      (5.8680,-0.3480) .. (4.4880,-0.3480) -- (3.1200,-0.3480) .. controls
      (2.9520,-0.3480) and (2.9280,-0.3480) .. (2.8560,-0.3600) .. controls
      (2.7240,-0.3720) and (2.7120,-0.3960) .. (2.7120,-0.4920) .. controls
      (2.7120,-0.5760) and (2.7360,-0.6480) .. (2.7600,-0.7560) -- (4.4160,-7.3800)
      -- cycle;
  \end{scope}
  \begin{scope}[shift={(265.462,131.415)}]
    \path (4.4160,-7.3800) .. controls (4.5240,-7.8240) and (4.5720,-7.8480) ..
      (5.0400,-7.8480) -- (5.9040,-7.8480) .. controls (6.9360,-7.8480) and
      (7.7040,-7.5360) .. (7.7040,-6.6000) .. controls (7.7040,-5.9880) and
      (7.3920,-4.2240) .. (4.9800,-4.2240) -- (3.6240,-4.2240) -- (4.4160,-7.3800)
      -- cycle(6.0840,-4.0800) .. controls (7.5720,-4.4040) and (8.7360,-5.3640) ..
      (8.7360,-6.3960) .. controls (8.7360,-7.3320) and (7.7880,-8.1960) ..
      (6.1200,-8.1960) -- (2.8680,-8.1960) .. controls (2.6280,-8.1960) and
      (2.5200,-8.1960) .. (2.5200,-7.9680) .. controls (2.5200,-7.8480) and
      (2.6040,-7.8480) .. (2.8320,-7.8480) .. controls (3.5520,-7.8480) and
      (3.5520,-7.7520) .. (3.5520,-7.6200) .. controls (3.5520,-7.5960) and
      (3.5520,-7.5240) .. (3.5040,-7.3440) -- (1.8840,-0.8880) .. controls
      (1.7760,-0.4680) and (1.7520,-0.3480) .. (0.9240,-0.3480) .. controls
      (0.6480,-0.3480) and (0.5640,-0.3480) .. (0.5640,-0.1200) .. controls
      (0.5640,0.0000) and (0.6960,0.0000) .. (0.7320,0.0000) .. controls
      (0.9480,0.0000) and (1.2000,-0.0240) .. (1.4280,-0.0240) -- (2.8440,-0.0240)
      .. controls (3.0600,-0.0240) and (3.3120,0.0000) .. (3.5280,0.0000) ..
      controls (3.6240,0.0000) and (3.7560,0.0000) .. (3.7560,-0.2280) .. controls
      (3.7560,-0.3480) and (3.6480,-0.3480) .. (3.4680,-0.3480) .. controls
      (2.7360,-0.3480) and (2.7360,-0.4440) .. (2.7360,-0.5640) .. controls
      (2.7360,-0.5760) and (2.7360,-0.6600) .. (2.7600,-0.7560) -- (3.5640,-3.9840)
      -- (5.0040,-3.9840) .. controls (6.1440,-3.9840) and (6.3600,-3.2640) ..
      (6.3600,-2.8680) .. controls (6.3600,-2.6880) and (6.2400,-2.2200) ..
      (6.1560,-1.9080) .. controls (6.0240,-1.3560) and (5.9880,-1.2240) ..
      (5.9880,-0.9960) .. controls (5.9880,-0.1440) and (6.6840,0.2520) ..
      (7.4880,0.2520) .. controls (8.4600,0.2520) and (8.8800,-0.9360) ..
      (8.8800,-1.1040) .. controls (8.8800,-1.1880) and (8.8200,-1.2240) ..
      (8.7480,-1.2240) .. controls (8.6520,-1.2240) and (8.6280,-1.1520) ..
      (8.6040,-1.0560) .. controls (8.3160,-0.2040) and (7.8240,0.0120) ..
      (7.5240,0.0120) .. controls (7.2240,0.0120) and (7.0320,-0.1200) ..
      (7.0320,-0.6600) .. controls (7.0320,-0.9480) and (7.1760,-2.0400) ..
      (7.1880,-2.1000) .. controls (7.2480,-2.5440) and (7.2480,-2.5920) ..
      (7.2480,-2.6880) .. controls (7.2480,-3.5640) and (6.5400,-3.9360) ..
      (6.0840,-4.0800) -- cycle;
  \end{scope}
  \begin{scope}[shift={(186.682,173.799)}]
    \path (10.8360,-6.8640) .. controls (11.1120,-7.3320) and (11.3760,-7.7760) ..
      (12.0960,-7.8480) .. controls (12.2040,-7.8600) and (12.3120,-7.8720) ..
      (12.3120,-8.0640) .. controls (12.3120,-8.1960) and (12.2040,-8.1960) ..
      (12.1680,-8.1960) .. controls (12.1440,-8.1960) and (12.0600,-8.1720) ..
      (11.2680,-8.1720) .. controls (10.9080,-8.1720) and (10.5360,-8.1960) ..
      (10.1880,-8.1960) .. controls (10.1160,-8.1960) and (9.9720,-8.1960) ..
      (9.9720,-7.9680) .. controls (9.9720,-7.8600) and (10.0680,-7.8480) ..
      (10.1400,-7.8480) .. controls (10.3800,-7.8360) and (10.7640,-7.7640) ..
      (10.7640,-7.3920) .. controls (10.7640,-7.2360) and (10.7160,-7.1520) ..
      (10.5960,-6.9480) -- (7.3200,-1.2120) -- (6.8880,-7.4640) .. controls
      (6.8880,-7.6080) and (7.0200,-7.8360) .. (7.6920,-7.8480) .. controls
      (7.8480,-7.8480) and (7.9680,-7.8480) .. (7.9680,-8.0760) .. controls
      (7.9680,-8.1960) and (7.8480,-8.1960) .. (7.7880,-8.1960) .. controls
      (7.3680,-8.1960) and (6.9240,-8.1720) .. (6.4920,-8.1720) -- (5.8680,-8.1720)
      .. controls (5.6880,-8.1720) and (5.4720,-8.1960) .. (5.2920,-8.1960) ..
      controls (5.2200,-8.1960) and (5.0760,-8.1960) .. (5.0760,-7.9680) .. controls
      (5.0760,-7.8480) and (5.1600,-7.8480) .. (5.3640,-7.8480) .. controls
      (5.9160,-7.8480) and (5.9160,-7.8360) .. (5.9640,-7.1040) -- (6.0000,-6.6720)
      -- (2.8920,-1.2120) -- (2.4480,-7.4040) .. controls (2.4480,-7.5360) and
      (2.4480,-7.8360) .. (3.2640,-7.8480) .. controls (3.3960,-7.8480) and
      (3.5280,-7.8480) .. (3.5280,-8.0640) .. controls (3.5280,-8.1960) and
      (3.4200,-8.1960) .. (3.3480,-8.1960) .. controls (2.9280,-8.1960) and
      (2.4840,-8.1720) .. (2.0520,-8.1720) -- (1.4280,-8.1720) .. controls
      (1.2480,-8.1720) and (1.0320,-8.1960) .. (0.8520,-8.1960) .. controls
      (0.7800,-8.1960) and (0.6360,-8.1960) .. (0.6360,-7.9680) .. controls
      (0.6360,-7.8480) and (0.7320,-7.8480) .. (0.9000,-7.8480) .. controls
      (1.4640,-7.8480) and (1.4760,-7.7760) .. (1.5000,-7.3920) -- (2.0280,-0.0240)
      .. controls (2.0400,0.1800) and (2.0520,0.2520) .. (2.1960,0.2520) .. controls
      (2.3160,0.2520) and (2.3400,0.2040) .. (2.4480,0.0240) -- (6.0240,-6.2280) --
      (6.4680,-0.0240) .. controls (6.4800,0.1800) and (6.4920,0.2520) ..
      (6.6360,0.2520) .. controls (6.7560,0.2520) and (6.7920,0.1920) ..
      (6.8880,0.0240) -- (10.8360,-6.8640) -- cycle;
  \end{scope}
\end{scope}

\end{tikzpicture}
\end{document}

The graphics looks fine, but the labels vanished somehow.

5

With PSTricks and explanation.

enter image description here

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl,pst-plot}

\edef\A{2}% semi-major
\edef\B{1}% semi-minor
\edef\Cx{3}% center abscissa
\edef\Cy{3}% center ordinate 

% parametric representation of an ellipse
\edef\X(#1){\A*cos(#1)+\Cx}
\edef\Y(#1){\B*sin(#1)+\Cy}

% the left focus point in RPN notation
% [-sqrt(A^2-B^2)+Cx,Cy]
\edef\F{!\A\space 2 exp \B\space 2 exp sub sqrt neg \Cx\space add 
\Cy }

\psset{algebraic}

\begin{document}
\begin{pspicture}[showgrid](6,6)
    \psparametricplot{0}{Pi 2 mul}{\X(t)|\Y(t)}% plot the ellipse from 0 to 2*pi
    \curvepnode{Pi 4 div}{\X(t)|\Y(t)}{P}% define the point P through which the tangent line passes
    % \curvepnode also produces a unit tangent vector named Ptang
    %----------------------------------------------------------------------------------------------
    \pnode(\Cx,\Cy){C}% define the center
    \pnode(\F){F}% define the focus
    %----------------------------------------------------------------------------------------------
    \nodexn{-2(Ptang)+(C)}{S}% vector S = -2 Ptang + C
    \nodexn{2(Ptang)+(C)}{T}% vector T = 2 Ptang + C
    %-----------------------------------------------------------------------------------------------
    \psline[linecolor=red](S)(T)% draw the line passing through C and parallel to the unit tangent vector
    \psxline[linecolor=green](P){(S)-(C)}{(T)-(C)}% draw a line from vector P + S - C to P + T - C
    \pcline[nodesep=-1,linecolor=blue](F)(P)% drawn a line from F to P
    \pstInterLL[PointName=none]{F}{P}{S}{T}{I}% find the intersection point I between line FP and ST
    \psdots(P)(C)(F)% draw the points P, C, F
\end{pspicture}
\end{document}

Animation

enter image description here

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl,pst-plot}
\usepackage[nomessages]{fp}

\def\X(#1){2*cos(#1)+3}
\def\Y(#1){sin(#1)+3}
\FPset\N{20}
\FPeval\Step{round(2*pi/N:2)}

\psset{algebraic,unit=0.5}

\begin{document}
\multido{\n=0.00+\Step}{\N}{%
\begin{pspicture*}[showgrid=false](6,6)
    \psparametricplot{0}{Pi 2 mul}{\X(t)|\Y(t)}
    \curvepnode{\n}{\X(t)|\Y(t)}{P}
    \pnode(3,3){Q}
    \pnode(!3 sqrt neg 3 add 3){F}
    \nodexn{-3(Ptang)+(Q)}{A}
    \nodexn{3(Ptang)+(Q)}{B}
    \psline[linecolor=red](A)(B)
    \psxline[linecolor=green](P){(A)-(Q)}{(B)-(Q)}
    \pcline[nodesep=-2,linecolor=blue](F)(P)
    \pstInterLL[PointName=none]{F}{P}{A}{B}{I}  
    \psdots(P)(Q)(F)
\end{pspicture*}}
\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.