我在这里和那里看了很多问题www.texample.net关于如何构造给定点的切线,但我不知道如何做到这一点。
让我们举一个非常简单的例子。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) ellipse (2cm and 1cm);
\node[shape = circle, fill] (P) at ({2 * cos(163)}, {1 * sin(163)}) {};
\end{tikzpicture}
\end{document}
我怎样才能将逆时针方向的单位切向量放置在 处P
?
答案1
您可以通过在切点周围放置一个非常小的圆路径并找到该小圆与椭圆之间的交点来近似切线。然后,您可以使用库calc
来绘制切线。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections, calc}
\begin{document}
\begin{tikzpicture}
\draw [name path=ellipse] (0,0) ellipse (2cm and 1cm);
\node[shape = circle, inner sep=1.5pt, fill] (P) at (163:2cm and 1cm) {};
\path [name path=aux] (P) circle [radius=1bp];
\draw [name intersections={of=ellipse and aux}] (P) -- ($(intersection-1)!1cm!(intersection-2)$);
\end{tikzpicture}
\end{document}
另一种方法是使用path
带有选项arc
的 来放置节点sloped
,这将导致节点沿弧线定向。然后,您可以使用节点的锚点使用该calc
库绘制具有固定长度的切线。如果您的节点名称是tangent
,则可以使用以下方法获取单位向量
\draw (tangent.center) -- ($(tangent.center)!1cm!(tangent.west)$);
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def\angle{163}
\draw (0,0) ellipse (2cm and 1cm);
\node[shape = circle, inner sep=1.5pt, fill] (P) at (\angle:2cm and 1cm) {};
\path (2,0) arc [
start angle=0,
end angle=\angle,
x radius=2cm,
y radius=1cm
] node [pos=1,sloped, name=tangent] {};
\draw (tangent.center) -- ($(tangent.center)!1cm!(tangent.west)$);
\end{tikzpicture}
\end{document}