TikZ 比例尺盒无需翻译

TikZ 比例尺盒无需翻译

下面是两张 TikZ 图片。在第二张图片中,我添加了一个\scalebox来缩放节点 ABC 及其之间的距离。我希望 A 保持在同一位置,但不幸的是坐标是相对于原点缩放的。

我怎样才能在不平移图形的情况下重新调整该部分的比例?

在此处输入图片描述

带有比例框的图片的 MWE:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}

\node at (0,0) {0,0};
\node at (4,4) {4,4};
\node at (0,4) {0,4};
\node at (4,0) {4,0};

\scalebox{0.67}{
    \node at (2,2) (A) {A};
    \node [right=of A] {B};
    \node [below=of A] {C};
}
\end{tikzpicture}
\end{document}

要清楚:我确实希望 A、B 和 C 之间的距离按比例缩放,我只是不希望整个比例框朝原点移动。在我的实际文档中,比例框的内容更为复杂。

答案1

使用scope带有选项的scale=0.67transform shape代替\scalebox。范围内的所有数字坐标都将被缩放。但您可以使用scope定义之外的名为coordinate“anchor”的 来定位节点A

\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\draw[help lines](0,0)grid(4,4);
\node at (0,0) {0,0};
\node at (4,4) {4,4};
\node at (0,4) {0,4};
\node at (4,0) {4,0};
\coordinate (O) at (2,2);% coordinate for positioning node A
\begin{scope}[scale=0.67,transform shape]
    \node at (O) (A) {A};
    \node [right=of A] {B};
    \node [below=of A] {C};
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容