Tikz 中的 \path 和 \draw 有什么区别?

Tikz 中的 \path 和 \draw 有什么区别?

\path问题就在标题中:Tikz 中的命令和有什么区别\drawTill Tantau 撰写的 PGF 和 TikZ 手册告诉我(在当前版本的第 26 页)“\draw只是\path[draw]” 的简写。

在之前关于如何使用 绘制某些图形的问题的一些答案中Tikz,一些用户在他们的代码中混合使用了\path\draw,而其他用户似乎只使用了\draw

非常有用的幻灯片Marc van Dongen 在他的网站上解释了 Tikz 的基本功能,也包含两者的混合,但主要依赖于命令\draw

为了解决这种混乱,我现在已经改用 exclusivley \draw,但我发现这非常令人困惑。

这两个命令有什么区别?我应该同时使用这两个命令吗?什么时候用代替更好,\path反之亦然\draw?什么时候它们完全一样?有没有\path可以做但\draw不能做的事情?

答案1

有时我们只需要一条虚拟路径,或者一条完全透明的路径来计算一些坐标、交叉点等。

为了制作一条隐形的路径,我们使用\path,如果您想在其上放一些墨水,您可以使用\draw

例子:下面是我使用一些路径来计算交点的一个例子。

\documentclass{report}
\usepackage{amsthm,amsmath,amssymb}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[scale=2]\footnotesize 
\clip (-1.2,-.3) rectangle (4,1.75);
\begin{scope}[rotate=70]
\coordinate (q) at (0,0);
%
\draw[dashed] (q) circle (1);
\draw[dotted](0,-.8)--(0,.8)node[left=1.5em]{$\mathcal{K}$};
%
\path[name path=ray1] (q)-- (35:3cm);
\path[name path=ray2] (q)-- (0:3cm);
\path[name path=ray3] (q)-- (-40:3cm);
\path[name path=ray4] (q)-- (-60:3.5cm);
\path[name path=ray5] (q)-- (-70:4cm);
\draw[name path=circulo] (q)+(.4,0) circle (.4);
\draw[name path=vertical] (1.25,-4)node[above left=10pt]{$L$} -- (1.25,2);
%
\draw[name intersections={of=ray1 and vertical,by={b}}]  (q)--(b);
\draw[name intersections={of=ray2 and vertical,by={a}}]  (q)--(a);
\draw[dotted,name intersections={of=ray3 and vertical,by={v3}}]  (q)--(v3);
\draw[dotted,name intersections={of=ray4 and vertical,by={v4}}]  (q)--(v4);
\draw[dotted,name intersections={of=ray5 and vertical,by={v5}}]  (q)--(v5);
%
\path[name intersections={of=ray1 and circulo,by={btilde}}] ;
\path[name intersections={of=ray2 and circulo,by={atilde}}] ;
\path[name intersections={of=ray3 and circulo,by={c31,c32}}] ;
\path[name intersections={of=ray4 and circulo,by={c41,c42}}] ;
\path[name intersections={of=ray5 and circulo,by={c51,c52}}] ;
%
\draw (atilde)--(btilde);
\draw[rotate=35] (btilde) rectangle +(-.07,-.07);
\draw[rotate=0] (a) rectangle +(-.07,.07);
\foreach \p in {q,btilde,atilde,c32,c42,c52,b,a,v3,v4,v5}{
\draw[fill=white] (\p) circle (.7pt); }
%
\node[left=2pt] at (btilde){$\tilde b$};
\node[right=2pt] at (atilde){$\tilde a$};
\node[above=2pt] at (a){$a$};
\node[above=2pt] at (b){$b$};
\node[below=2pt] at (q){$q$};
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容