tikz - 带偏移的镜像部件

tikz - 带偏移的镜像部件

我想要通过 x = 2.5 线(AB)镜像以下部分,xscale 将通过 x = 0 线镜像它。

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
    \def\parts{(1,1) -- (2.5,3) -- (1,4)}
\begin{tikzpicture}
    \draw [help lines, dashed] (0,0) grid(5,4);
   \draw[] \parts [xscale=-1] \parts;
   \draw[red] (2.5,1) node[below]{A} -- (2.5,4) node[above]{B};
\end{tikzpicture}
\end{document}

制作这种镜子的正确方法是什么? 在此处输入图片描述

答案1

这引入了一个键mirror,无论你传递给这个键什么都会被镜像。在你的图中,这相当于说

\tikzset{mirror={\draw (1,1) -- (2.5,3) -- (1,4);}}

有样式mirroredunmirrored,可用于改变变换定律,引入偏移或名称前缀等。

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[mirror/.code={\tikzset{mirrored stuff/.code={#1}}
    \begin{scope}[unmirrored]
     \tikzset{mirrored stuff}
    \end{scope}
    \begin{scope}[mirrored]
     \tikzset{mirrored stuff}
    \end{scope}},mirrored/.style={xscale=-1},unmirrored/.style={}]
  \draw [help lines, dashed] (0,0) grid(5,4);
  \tikzset{mirrored/.append style={xshift=-5cm},
  mirror={\draw (1,1) -- (2.5,3) -- (1,4);}}
  \draw[red] (2.5,1) node[below]{A} -- (2.5,4) node[above]{B};
\end{tikzpicture}
\end{document}

在此处输入图片描述

请注意,还有更多可用的选项,例如这个这是我在完成示例后发现的。

答案2

xshift 帮助解决了这个问题!

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
    \def\parts{(1,1) -- (2.5,3) -- (1,4)}
    \begin{tikzpicture}
        \draw [help lines, dashed] (0,0) grid(5,4);
        \draw[] \parts[x={(-1,0)},y={(0,1)},xshift=2*2.5cm] \parts;
        \draw[red] (2.5,1) node[below]{A} -- (2.5,4) node[above]{B};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

这个想法是 x 轴移动到原点,然后使用[xscale=-1]镜像,再 x 轴移动回来。注意:选项的顺序很重要!

该代码由@beetlej 修正。

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
% object to be mirrored
\def\xmirror{2.5}   
\def\myobject{(1,1) -- (2.5,3) -- (1,4)}
\draw[violet,opacity=.3] (0,0) grid (5,5);
\draw[red] (\xmirror,1) node[below]{A} -- (\xmirror,4) node[above]{B};

\draw \myobject;
\draw[shift={(\xmirror,0)},xscale=-1,shift={(-\xmirror,0)}] \myobject;
\end{tikzpicture}
\end{document}

相关内容