TikZ 交叉口中选项‘by’的含义是什么

TikZ 交叉口中选项‘by’的含义是什么

PGF 手册第 65 页展示了intersectionsTikZ 中库的不同操作。但我看不懂代码。by这里的选项是什么意思。

在此处输入图片描述

给出的解释是:

名称 Intersections 带有可选参数 by,可让您指定坐标的名称及其选项。这样可以创建更紧凑的代码。

这一点尚不清楚。

答案1

相关行是

\path [name intersections={of=D and E, by={[label=above:$C$]C, [label=below:$C’$]C’}}];

与这个更简单的版本进行比较:

\path [name intersections={of=D and E, by={C, C’}}];

这里计算交点并将其命名为 C 和 C'(“姓名路口D 和 E 经过名字CC'“)。

这是快捷方式

\coordinate (C) at ...;
\coordinate (C') at ...;

对于一些计算出的坐标。

添加可选样式[label=above:$C$]C相当于

\coordinate[label=above:$C$] (C) at ...;

并允许您直接设置交叉点的样式。虽然写得更长,但效果是一样的,

\path [name intersections={of=D and E, by={C, C’}}];
\node[above] at (C) {$C$};
\node[below] at (C') {$C'$};

答案2

只是为了完整性。你可以用 等来命名交叉点C-1。只需使用 即可name=C。也许还值得指出的是,如果你想要沿直线对交叉点进行排序,那么你必须把直线画成曲线

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
    \draw[name path=grid] [xstep=3,ystep=2] (9,8) grid (0,0);
    \draw[->, name path=line] (2,1) to[bend left=0] (7,7);
    \draw[name intersections={of=grid and line, sort by=line, name=C, total=\t}]
        \foreach \s in {1,...,\t}{(C-\s) node {\s}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

默认情况下,交叉点命名为(intersection-1)(intersection-2)等。

当您写下by={a,b}前两个交点时,将被称为(a)(b)

让我们看一下第 142 页上稍作修改的示例。它显示两条曲线的 9 个交点。总交点数为total

通过写入by={a,b},前两个交叉点现在有两个名称:

  • (a)或者(intersection-1)
  • (b)或者(intersection-2)

(a)是 的别名(intersection-1),其他的没有别名,仍然可访问。

截屏

\documentclass[border=5mm,tikz]{standalone}

\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\clip (-2,-2) rectangle (2,2);
\draw [name path=curve 1] (-2,-1) .. controls (8,-1) and (-8,1) .. (2,1);
\draw [name path=curve 2] (-1,-2) .. controls (-1,8) and (1,-8) .. (1,2);
\fill [name intersections={of=curve 1 and curve 2, by={a,b}, total=\t}]
[red, opacity=0.5, every node/.style={above left, black, opacity=1}]
\foreach \s in {1,...,\t}{(intersection-\s) circle (2pt) node {\footnotesize\s}};
\draw[fill=blue!50,opacity=.5] (a) circle (4pt);
\end{tikzpicture}
\end{document}

相关内容