有没有办法绘制反转的 TikZ 路径?
我正在尝试创建一些生成镶嵌图形的代码(用于我们如何在 LaTeX 中画一只鸟)。
以下是我得到的结果:
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def\x{2}
\def\y{4}
\def\mypath{(0,0) -- (1,1) -- (\x,0) -- (\x,\y)}
\draw \mypath;
\draw[shift={(\x,\y)}, rotate=180, blue] \mypath;
\end{tikzpicture}
\end{document}
它生成了这样的: 但是我想要的是这样的:。所以旋转路径显然是不对的。我需要把它分成两部分然后反转绘制。
答案1
这是不可能的,因为定义\mypath
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def\x{2}
\def\y{4}
\def\mypath{(0,0) -- (1,1) -- (\x,0) -- (\x,\y)}
\draw[red] \mypath;
\end{tikzpicture}
\hspace{1cm}
\begin{tikzpicture}
\def\x{2}
\def\y{4}
\def\mypath{(0,0) -- (1,1) -- (\x,0) -- (\x,\y)}
\draw[rotate=180, blue] \mypath;
\end{tikzpicture}
\end{document}
没有可能改变以正确完成你的形状
但
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def\x{2}
\def\y{4}
\def\mypath{((1,1) -- (\x,0) -- (\x,\y)--++(-1,1)}
\draw[red] \mypath;
\draw[blue,x=-0.5*\x cm,xshift=\x cm] \mypath;
\end{tikzpicture}
\end{document}
答案2
您尝试的解决方案如下:
- 绘制前进的道路
- 转移
- 向后绘制路径
- 近路径
为了使这更容易,不要通过实际点来指定路径,而是通过位移来指定。代码是
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (start) at (0,0);
\def\shape{{(1,1)},{(1,-1)}}
\coordinate (shift) at (0,4);
\foreach \point [count=\n] in \shape {
\node[coordinate] (d-\n) at \point {};
}
\pgfmathtruncatemacro{\size}{\n}
\draw (start)
\foreach \i in {1,...,\size} {-- ++(d-\i)} %draw forward
-- ++(shift) %shift
\foreach \i in {\size,...,1} {-- ++($-1*(d-\i)$)} % draw backward
-- cycle; %close
\end{tikzpicture}
\end{document}
结果是