坐标变换


坐标变换对于一个图形系统来说非常重要,我们主张学习一个图形系统的第一步 先看简介,看看怎么把它纳入到格式比如说LaTeX中来,第二步要看坐标系统,这是 绘制的基础。第三部就是坐标变换,在图形一开始设置好必要的变换,绘图就可以用 真实世界坐标了。

xy-和xyz-坐标系统

在xy-和xyz-系统中,x向量是向右1cm,y向量是向上1cm,z向量的是(-1/sqrt(2),-1/sqrt(2))。 如果想改变,可以用选项

x=值
y=值
z=值
其中值可以是长度,比如
\tikz \draw[x=1.5cm] (0,0) grid (2,2);
这时向量的方向不变,只改变模。值还可以是坐标,比如
\begin{tikzpicture}
\draw (0,0) -- (1,0);
\draw[x={(2cm,0.5cm)},color=red] (0,0) -- (1,0);
\end{tikzpicture}
它指定了新的向量。

坐标变换

选项

shift={坐标}
表示平移到“坐标”,比如
\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) -- (1,1) -- (1,0);
\draw[shift={(1,1)},blue] (0,0) -- (1,1) -- (1,0);
\draw[shift={(30:1cm)},red] (0,0) -- (1,1) -- (1,0);
\end{tikzpicture}
选项
shift only
没有参数,表示撤销其它变换,只留下平移。x轴方向 和y轴方向上的平移由选项
xshift=长度
yshift=长度
表示。

缩放用选项

scale=x轴方向上和y轴方向上的缩放因子
xscale=x轴方向上的缩放因子
yscale=y轴方向上的缩放因子
如果缩放的中心不在原点,可以用
scale around=缩放因子:缩放中心
指定新的中心。比如
\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) -- (1,1) -- (1,0);
\draw[scale=2,blue] (0,0) -- (1,1) -- (1,0);
\draw[scale around={2:(1,1)},red] (0,0) -- (1,1) -- (1,0);
\end{tikzpicture}

倾斜可以用选项

xslant=x轴方向上的倾斜因子
yslant=y轴方向上的倾斜因子

旋转可以用选项

rotate=角度
改变旋转中心的旋转用选项
rotate around=角度:坐标
“坐标”指定了新的旋转中心。比如
\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) -- (1,1) -- (1,0);
\draw[rotate around={40:(1,1)},blue] (0,0) -- (1,1) -- (1,0);
\draw[rotate around={-20:(1,1)},red] (0,0) -- (1,1) -- (1,0);
\end{tikzpicture}

一次指定所有变换的方法是使用选项

cm={a,b,c,d,坐标}
其中“坐标”表示平移位置,其它四项就是二阶变换矩阵的四项。如果要将变换矩阵 恢复为恒等矩阵,可以用选项
reset cm

画布变换

如果对画布,也就是我们的绘制区域进行变换,可以用选项

transform canvas={变换选项}
比如
\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) -- (1,1) -- (1,0);
\draw[transform canvas={scale=2},blue] (0,0) -- (1,1) -- (1,0);
\draw[transform canvas={rotate=180},red] (0,0) -- (1,1) -- (1,0);
\end{tikzpicture}


目录