diff options
author | Karl Berry <karl@freefriends.org> | 2022-08-22 20:49:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-08-22 20:49:17 +0000 |
commit | 9512ee188f093d3f12646f92bac5126168b3410e (patch) | |
tree | e906edff0fcba89a9d5ba1f19afbbd470dc346a0 /Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex | |
parent | eeb0bb042dd18dab84dab64eb6c07272aaa56eac (diff) |
tikz-ext (22aug22)
git-svn-id: svn://tug.org/texlive/trunk@64166 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex new file mode 100644 index 00000000000..b2aa0f8f7f1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tikz-ext/tikz-ext-manual-en-library-trans.tex @@ -0,0 +1,136 @@ +% !TeX spellcheck = en_US +% !TeX root = tikz-ext-manual.tex +% Copyright 2022 by Qrrbrbirlbel +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Free Documentation License. +% + +\clearpage +\section{Mirror, Mirror on the Wall} +\label{library:mirror} + +\begin{tikzlibrary}{ext.transformations.mirror} + This library adds more transformations to \tikzname. +\end{tikzlibrary} + +As explained in section~\ref{pgflibrary:transformations}, there are two approaches to setting a mirror transformation. +As with the commands in PGF, we'll be using a lowercase |m| for the reflection matrix and an uppercase |M| for the built-in approach. + +\subsection{Using the reflection matrix} + +\begin{codeexample}[width=.4\linewidth,preamble=\usetikzlibrary{shapes.geometric,ext.transformations.mirror}] +\begin{tikzpicture}[line join=round, thick, reg poly/.style={ + shape=regular polygon, regular polygon sides={#1}}] +\node[reg poly=5, minimum size=+2cm, draw, very thick] (a) {}; +\foreach \i[evaluate={\col=(\i-1)/.04}] in {1,...,5} + \node [mirror=(a.corner \i)--(a.side \i), transform shape, + reg poly=5, minimum size=+2cm, draw=red!\col!blue] {}; +\end{tikzpicture} +\end{codeexample} + +\begin{key}{/tikz/xmirror=\meta{value or coordinate}} + Sets up a transformation that mirrors along a horizontal line that goes through point $(\text{\meta{value}}, 0)$ or \meta{coordinate}. + +\begin{codeexample}[preamble=\usetikzlibrary{ext.transformations.mirror}] +\begin{tikzpicture} +\draw[help lines] (-0.25, -.25) grid (3.25, 1.25); +\draw[-latex] (0,0) .. controls (.5,1) .. (1,1); + +\draw[dashed] (1.5, -.25) coordinate (m) -- (1.5, 1.25); +\draw[xmirror=(m),-latex] (0,0) .. controls (.5,1) .. (1,1); +\end{tikzpicture} +\end{codeexample} +\end{key} + +\begin{key}{/tikz/ymirror=\meta{value or coordinate}} + Sets up a transformation that mirrors along a vertical line that goes through point $(0, \text{\meta{value}})$ or \meta{coordinate}. +\end{key} + + +\begin{key}{/tikz/mirror x=\meta{coordinate}} + Similar to |/tikz/xmirror|, this however uses the |xyz| coordinate system instead of the |canvas| system. +\begin{codeexample}[preamble=\usetikzlibrary{ext.transformations.mirror}] +\begin{tikzpicture}[x=.5cm, y=(45:1cm)] + +\draw[-latex] (0,0) .. controls (.5,1) .. (1,1); + +\draw[dashed] (1.5, -.25) coordinate (m) -- (1.5, 1.25); + +\draw[ xmirror=(m), -latex, red, dotted] (0,0) .. controls (.5,1) .. (1,1); +\draw[mirror x=(m), -latex] (0,0) .. controls (.5,1) .. (1,1); +\end{tikzpicture} +\end{codeexample} +\end{key} + +\begin{key}{/tikz/mirror y=\meta{coordinate}} + Similar to |/tikz/ymirror|, this however uses the |xyz| coordinate system instead of the |canvas| system. +\end{key} + + +\begin{key}{/tikz/mirror=\meta{point A}|--|\meta{point B}} + Sets up a transformation that mirrors along a line that goes through \meta{point A} and \meta{point B}. + + When only \meta{point A} is given that line goes through \meta{point A} and the origin. +\end{key} + +\subsection{Using built-in transformations} + +\begin{codeexample}[width=.4\linewidth,preamble=\usetikzlibrary{shapes.geometric,ext.transformations.mirror}] +\begin{tikzpicture}[line join=round, thick, reg poly/.style={ + shape=regular polygon, regular polygon sides={#1}}] +\node[reg poly=5, minimum size=+2cm, draw, very thick] (a) {}; +\foreach \i[evaluate={\col=(\i-1)/.04}] in {1,...,5} + \node [Mirror=(a.corner \i)--(a.side \i), transform shape, + reg poly=5, minimum size=+2cm, draw=red!\col!blue] {}; +\end{tikzpicture} +\end{codeexample} + +\begin{key}{/tikz/xMirror=\meta{value or coordinate}} + Sets up a transformation that mirrors along a horizontal line that goes through point $(\text{\meta{value}}, 0)$ or \meta{coordinate}. + +\begin{codeexample}[preamble=\usetikzlibrary{ext.transformations.mirror}] +\begin{tikzpicture} +\draw[help lines] (-0.25, -.25) grid (3.25, 1.25); +\draw[-latex] (0,0) .. controls (.5,1) .. (1,1); + +\draw[dashed] (1.5, -.25) coordinate (m) -- (1.5, 1.25); +\draw[xMirror=(m),-latex] (0,0) .. controls (.5,1) .. (1,1); +\end{tikzpicture} +\end{codeexample} +\end{key} + +\begin{key}{/tikz/yMirror=\meta{value or coordinate}} + Sets up a transformation that mirrors along a vertical line that goes through point $(0, \text{\meta{value}})$ or \meta{coordinate}. +\end{key} + + +\begin{key}{/tikz/Mirror x=\meta{coordinate}} + Similar to |/tikz/xMirror|, this however uses the |xyz| coordinate system instead of the |canvas| system. +\begin{codeexample}[preamble=\usetikzlibrary{ext.transformations.mirror}] +\begin{tikzpicture}[x=.5cm, y=(45:1cm)] + +\draw[-latex] (0,0) .. controls (.5,1) .. (1,1); + +\draw[dashed] (1.5, -.25) coordinate (m) -- (1.5, 1.25); + +\draw[ xMirror=(m), -latex, red, dotted] (0,0) .. controls (.5,1) .. (1,1); +\draw[Mirror x=(m), -latex] (0,0) .. controls (.5,1) .. (1,1); +\end{tikzpicture} +\end{codeexample} +\end{key} + +\begin{key}{/tikz/Mirror y=\meta{coordinate}} + Similar to |/tikz/yMirror|, this however uses the |xyz| coordinate system instead of the |canvas| system. +\end{key} + + +\begin{key}{/tikz/Mirror=\meta{point A}\opt{|--|\meta{point B}}} + Sets up a transformation that mirrors along a line that goes through \meta{point A} and \meta{point B}. + + When only \meta{point A} is given that line goes through \meta{point A} and the origin. +\end{key} + +\endinput |