是否可以定义一个垂直移动路径的 TikZ 样式?即,应通过将每个点向右移动 0.1 厘米(与该点处的路径方向正交)来从给定路径获得结果路径。
这应该适用于任意路径(不仅仅是直线)。另外,我不仅想沿着移位的路径画一条线,还想进行裁剪或填充等。因此,使用“raise=...”键以及装饰,如中所述路径的“垂直移位”我认为它行不通。
答案1
pgf 书第 151 页中的一些例子可能指明了正确的方向
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,2);
\coordinate (a) at (1,0);
\coordinate (b) at (3,1);
\draw (a) -- (b);
\coordinate (c) at ($ (a)!.25!(b) $);
\coordinate (d) at ($ (c)!1cm!90:(b) $);
\draw [<->] (c) -- (d) node [sloped,midway,above] {1cm};
\end{tikzpicture}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,2);
\coordinate (a) at (0,1);
\coordinate (b) at (3,2);
\coordinate (c) at (2.5,0);
\draw (a) -- (b) -- (c) -- cycle;
\draw[red] (a) -- ($(b)!(a)!(c)$);
\draw[orange] (b) -- ($(a)!(b)!(c)$);
\draw[blue] (c) -- ($(a)!(c)!(b)$);
\end{tikzpicture}
\end{document}
答案2
如果我理解正确的话,TikZ 的double
选项本身就可以实现这一点,它允许您绘制双线。以下是手册Graphic Parameters: Double Lines and Bordered Lines
部分中稍作修改的示例3.1.5b
。
\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[very thick,double] (0,0) arc (180:90:1cm);
\draw[very thick,double distance=5pt,double=green!50] (1,0) arc (180:90:1cm);
\draw[thin,double distance=.1cm] (2,0) arc (180:90:1cm);
\end{tikzpicture}
\end{document}