为什么坐标表示由控件构建的路径的中间点而不是起点

为什么坐标表示由控件构建的路径的中间点而不是起点

考虑这个例子

\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw (0,1)..controls +(2,4) and +(-2,-6)..(4,0)
..controls  +(2,6) and +(-2,-6.5)..(8,0)coordinate[pos=0](A);

\draw[<-](A)--+(0,2)node[above]{A};
\end{tikzpicture}

\end{document}

在此处输入图片描述

尽管我已经提到pos=0coordinate[pos=0](A)!看起来路径被分为两条路径?

答案1

这是定义的行为。从第 17.8 节“明确地将节点放置在直线或曲线上”中可以看出:

在此处输入图片描述

上一个坐标你的情况是(4,0)当前点(8,0),因此pos=0在是(4,0)

以下示例显示了由两段构建的路径的相同情况:

\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw (0,0) -- (3,1) -- (4,5) coordinate[pos=0] (A) coordinate[pos=0.5] (B) coordinate[pos=.75] (C);

\path (A) node {A};
\path (B)node {B};
\path (C)node {C};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

从技术上讲,这是两条不同的路径,但你可以这样做

\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\draw (0,1)..controls +(2,4) and +(-2,-6)..(4,0) coordinate[pos=0](A)
..controls  +(2,6) and +(-2,-6.5)..(8,0);

\draw[<-](A)--+(0,2)node[above]{A};
\end{tikzpicture}

\end{document}

相关内容