考虑以下代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=2]
\draw[help lines] (-3,-3) grid (3,3);
\draw (-3,0)--(3,0) node[right] {$x$};
\draw (0,-3)--(0,3) node[above] {$y$};
\filldraw (0,1) circle (2pt);
\end{tikzpicture}
\end{document}
这条线\filldraw (0,1) circle (2pt);
是我的重点。我正在缩放图像,所以我希望位置(0,1)
也缩放,但我不希望半径(2pt)
也缩放。我希望半径(2pt)
在图像缩放时保持不变(scale=2)
。
有任何想法吗?
谢谢。
答案1
在我看来,您似乎只想缩放坐标系,而不是图形本身。为此,我建议设置X和是向量到2cm
。
这意味着坐标(2,3)
将被解释为坐标(2*2cm, 3*2cm)
= (4cm, 6cm)
,而使用默认x
和y
选项,scale=2
将执行(2*2*1cm, 3*2*1cm)
。
step
由于的初始设置为grid
,1cm
我们还需要将其更改为 ,1
以便在 TikZ 的坐标系中识别它(而不是像所有具有尺寸的值一样在画布中识别它)。
另一种选择是在本地重置任何变换并仅缩放坐标,但您需要再次重复任何给定的变换:
\filldraw[reset cm] ([scale=2] 0,1) circle (2pt);
这里也可以使用节点:
\node[inner sep=+0pt, minimum size=+1pt, draw, fill, shape=circle] at (0,1) {};
何时transform shape
为假。
代码
\documentclass[tikz,convert=false]{standalone}
\begin{document}
\begin{tikzpicture}[x=2cm, y=2cm, step=1]
\draw[help lines] (-3,-3) grid (3,3);
\draw (-3,0)--(3,0) node[right] {$x$};
\draw (0,-3)--(0,3) node[above] {$y$};
\filldraw (0,1) circle (2pt);
\end{tikzpicture}
\end{document}