![在 tikz 中绘制图像时避免轴失真](https://linux22.com/image/458722/%E5%9C%A8%20tikz%20%E4%B8%AD%E7%BB%98%E5%88%B6%E5%9B%BE%E5%83%8F%E6%97%B6%E9%81%BF%E5%85%8D%E8%BD%B4%E5%A4%B1%E7%9C%9F.png)
我想circle
在一个矩形内以圆形绘制 10 s。
问题在于这 10 个圆圈的位置是椭圆形的,而不是围绕圆的圆周。
我想将这 10 个圆圈相对于这个矩形放置;这就是我使用范围的原因(也许我将来会改变矩形的大小以及圆的半径,也是相对于矩形的尺寸)。
所以我用了这个回答,创建以下内容:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\begin{document}
\begin{tikzpicture}
\node (frame) [
anchor=south west,
inner sep=0,outer sep=0pt,
draw,very thick,
minimum width = 4cm, minimum height = 1cm
] at (0,0) {};
\begin{scope}[x={(frame.south east)},y={(frame.north west)}]
\foreach \i in {1,2,...,10}
\filldraw ($ ({360/10*\i}:0.1) + (0.2,0.8) $) circle (1pt);
\end{scope}
\end{tikzpicture}
\end{document}
问题在于,范围内的轴不再正交;正如指出的那样,单位向量的大小不相等这里。
但我该如何修复它呢?
我添加了inner sep=0
但outer sep=0
似乎没有任何效果。
答案1
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\newcommand{\rectw}{4}
\newcommand{\recth}{1}
\newcommand{\radi}{0.2}
\node[
draw, very thick,
minimum width=\rectw cm, minimum height=\recth cm,
] (frame) at (0,0) {};
\foreach \i in {1,2,...,10}
\fill ([shift={(-1,0.2)}]frame.center) +(360/10*\i:\radi) circle[radius=1pt];
\end{tikzpicture}
\end{document}