毎度悩んで毎度ググるので備忘用としてメモ。→参照先
[手順]
- 楕円のパラメータを設定した上で描画。横半径を \Ex,縦半径を \Ey,中心を O とする。
123\def\Ex{2 cm} \def\Ey{1 cm}\coordinate(O)at(0,0);\draw[name path=Ellipse] (O) ellipse ({\Ex} and {\Ey}); - 接線の基準となる点 P を設定。今回は楕円の上方の点とした。
12\coordinate(P)at(0,3);\fill(P)circle(.05);
- OとPの中点を中心とし,縦半径がOP間距離の半分,そして横半径が楕円のアスペクト比と同じになるよう設定された楕円のパスを設定。
12\pgfmathsetmacro\Easpect{\Ex/\Ey}\path[name path=SubEllipse] let \p1=($(C)-(O)$),\n1={veclen(\x1,\y1)} in (C) ellipse ({\n1*\Easpect} and {\n1});
- 交点を求める。
1\path[name intersections={of=Ellipse and SubEllipse, by={X1,X2}}];
- 点Pと交点を通る直線が求める接線となる。
12\draw[red](P)--($(P)!1.5!(X1)$);\draw[red](P)--($(P)!1.5!(X2)$);
ということで,実装したものはここ。