Tikz 中的 cm-Option 有什么作用?

Tikz 中的 cm-Option 有什么作用?

在一个主题中,有人使用了选项“cm”,如以下简化的示例所示:

代码

\documentclass[12pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \pgfmathsetmacro{\mySqrt}{sqrt(3)/2}
  \def\r{1}
  \def\a{1}
  \draw [cm={\r,0,.5*\r,\mySqrt*\r,(0,0)}] 
    (1+\a,0) coordinate (-corner 0) coordinate (-corner 3) 
    -- (\a,1) coordinate (-corner 1)
    -- (-\a,1) coordinate (-corner 2)
    -- cycle;
\end{tikzpicture}
\end{document}

来自主题:仅缩放 TikZ 多边形的一部分@marsupilam

输出

代码输出

问题

这个选项起什么作用?其参数是什么意思?

答案1

有时我们需要使用特定的几何变换。参见手册25.3 坐标变换,第 378 页 对于命令cmreset cm

在此处输入图片描述

稍微解释一下:

  • scale=2是相同的cm={2, 0, 0, 2, (0,0)}
  • xscale=2是相同的cm={2, 0, 0, 1, (0,0)}
  • yscale=3是相同的cm={1, 0, 0, 3, (0,0)}
  • shift={(3,4)}是相同的cm={1, 0, 0, 1, (3,4)}
  • xshift=5cm是相同的cm={1, 0, 0, 1, (5,0)}
  • yshift=6cm是相同的cm={1, 0, 0, 1, (0,6)}
  • xslant=1.5是相同的cm={1, 0, 1.5, 1, (0,0)}
  • yslant=3是相同的cm={1, 3, 0, 1, (0,0)}

以下是一个小的自学教程^^

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[very thick]
\draw[gray!20,thin] (-3,-3) grid (3,3);
\draw[->,gray,thin] (-3.5,0)--(3.5,0) node[below right,black]{$x$}; 
\draw[->,gray,thin] (0,-3.5)--(0,3.5) node[below left,black]{$y$};
\def\mypath{(0,0) rectangle (1,1)}
%\def\mypath{(0,0) circle(1)}
%\def\mypath{(0,0) parabola (2,2)}
%\def\mypath{(0,0) sin (2,1.5)}
%\def\mypath{(0,0) .. controls +(70:2) and +(-100:1) .. (3,2)}


\draw[blue] \mypath;

% [xscale=-3,yscale=-2,shift={(0,-1)}] is the same as cm={-3, 0, 0, -2, (0,-1)}
\draw[cm={-3, 0, 0, -2, (0,-1)},red] \mypath;

% [xslant=1.5] is the same as [cm={1, 0, 1.5, 1, (0,0)}]
\draw[cm={1, 0, 1.5, 1, (0,0)},cyan] \mypath;

\draw[cm={1, 2, 3, -4, (-3,1)},orange] \mypath;

\path (0,4.5) node[align=center]{
\verb|[cm={a, b, c, d, (t_x, t_y)}]|\\[2mm]
$\begin{pmatrix}a&c\\b&d\end{pmatrix}
\begin{pmatrix}x\\y\end{pmatrix}+
\begin{pmatrix}t_x\\t_y\end{pmatrix}$
};
\end{tikzpicture}
\end{document}

答案2

作为@Celdor提到,它只是一个坐标变换。

拥有

\draw[cm={a, b, c, d, (t_x, t_y)}] (0,0) -- (1,1) -- (1,0);

每个点都按照以下公式进行变换:

在此处输入图片描述

其中该点由 x 和 y 给出。

相关内容