![如何用 tikz 将一个圆置于矩形右侧的中心](https://linux22.com/image/459144/%E5%A6%82%E4%BD%95%E7%94%A8%20tikz%20%E5%B0%86%E4%B8%80%E4%B8%AA%E5%9C%86%E7%BD%AE%E4%BA%8E%E7%9F%A9%E5%BD%A2%E5%8F%B3%E4%BE%A7%E7%9A%84%E4%B8%AD%E5%BF%83.png)
我正在尝试在每个矩形上创建一个圆圈。每个圆圈应位于矩形顶部和底部的中心,但应放置在右侧。
代码示例:
\documentclass{article}
\usepackage{tikz}
\usepackage{lscape}
\usepackage{nopageno}
\usepackage{pdflscape}
\usetikzlibrary{shapes.geometric,positioning}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\begin{document}
\begin{landscape}
\begin{tikzpicture}
\node at (0,0) [trapezium,
name=trapezium,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=.1cm,
fill=blue!9!white,
draw=blue!50!white,
trapezium angle=25] {};
\node [name=first,
rounded corners,
line width=.05cm,
node distance=.05cm,
fill=blue!9!white,
draw=blue!50!white,
minimum width=5cm,
minimum height=1cm,
below=of trapezium.south] {};
\node [name=second,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of first.south] {};
\node [name=third,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of second.south] {};
\node [name=fourth,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of third.south] {};
\node at (2,0) [name=firstCircle,
circle,
fill=white,
draw=blue!9!white,
minimum size=0.5cm] {};
\node [name=secondCircle,
circle,
fill=white,
node distance=1cm,
draw=blue!9!white,
minimum size=0.5cm,
below=of firstCircle.south] {};
\node [name=thirdCircle,
circle,
fill=white,
node distance=20pt,
draw=blue!9!white,
minimum size=0.5cm,
below=of secondCircle.south] {};
\node [name=forthCircle,
circle,
fill=white,
node distance=1cm,
draw=blue!9!white,
minimum size=0.5cm,
below=of thirdCircle.south] {};
\end{tikzpicture}
\end{landscape}
\end{document}
输出示例:
我尝试用 x 和 y 轴进行实验,但由于我想tikzpicture
在纸上多次复制这一点,所以我正在寻找一个更有条理的解决方案。
有没有比我做的更好的方法?
答案1
感谢@Qrrbrbirlbel,我终于弄明白了。
我也不得不使用xshift=-5mm
。
代码示例:
\documentclass{article}
\usepackage{tikz}
\usepackage{lscape}
\usepackage{nopageno}
\usepackage{pdflscape}
\usetikzlibrary{shapes.geometric,positioning}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\begin{document}
\begin{landscape}
\begin{tikzpicture}
\node at (0,0) [trapezium,
name=trapezium,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=.1cm,
fill=blue!9!white,
draw=blue!50!white,
trapezium angle=25] {};
\node [name=first,
rounded corners,
line width=.05cm,
node distance=.05cm,
fill=blue!9!white,
draw=blue!50!white,
minimum width=5cm,
minimum height=1cm,
below=of trapezium.south] {};
\node [name=second,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of first.south] {};
\node [name=third,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of second.south] {};
\node [name=fourth,
fill=blue!9!white,
draw=blue!50!white,
rounded corners,
line width=.05cm,
node distance=.05cm,
minimum width=5cm,
minimum height=1cm,
below=of third.south] {};
\node at (first.east) [name=firstCircle,
circle,
fill=white,
draw=blue!9!white,
minimum size=0.5cm,
xshift=-5mm] {};
\node at (second.east) [name=secondCircle,
circle,
fill=white,
node distance=1cm,
draw=blue!9!white,
minimum size=0.5cm,
xshift=-5mm] {};
\node at (third.east) [name=thirdCircle,
circle,
fill=white,
node distance=20pt,
draw=blue!9!white,
minimum size=0.5cm,
xshift=-5mm] {};
\node at (fourth.east) [name=forthCircle,
circle,
fill=white,
node distance=1cm,
draw=blue!9!white,
minimum size=0.5cm,
xshift=-5mm] {};
\end{tikzpicture}
\end{landscape}
\end{document}
有没有更好的方法来复制我的形状?我计划再创建至少 5 个这样的形状。