在 TikZ 中绘制反向路径

在 TikZ 中绘制反向路径

有没有办法绘制反转的 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

您尝试的解决方案如下:

  1. 绘制前进的道路
  2. 转移
  3. 向后绘制路径
  4. 近路径

为了使这更容易,不要通过实际点来指定路径,而是通过位移来指定。代码是

\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}

结果是

在此处输入图片描述

相关内容