在
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (bottom left) at (10,10);
\coordinate (top right) at (20,20);
\draw[rounded corners,fill=black] (bottom left) rectangle (top right);
\end{tikzpicture}
\end{document}
线
\draw[rounded corners,fill=black] (bottom left) rectangle (top right);
在坐标(左下)和(右上)之间绘制一个圆角黑色矩形。
定义一个具有与用“\draw”和“rectangle”定义的矩形完全相同的形状、位置和大小的节点的最简洁的方法是什么(如上所述)?
解决方案应该...
- 使用提供的坐标进行手动计算,
- 使用圆角,
- 预计节点的坐标为 (n.north, n.west, ...),并且
- 尽可能简洁(和优雅)。
答案1
如果我理解正确的话,您喜欢用两个坐标(左下角、右上角)确定矩形的大小。如果是这种情况,您可以按如下方式获得:
\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}[
mynode/.style 2 args = {
draw, rounded corners, fill=black,
inner sep=0pt, outer sep=0pt,
fit=(#1) (#2)}
]
\coordinate (bottom left) at (10,10);
\coordinate (top right) at (20,20);
\node[mynode={bottom left}{top right}] {};
\end{tikzpicture}
\end{document}
当然,您可以用不同的方式定义矩形大小,例如宽度minimum width
,,minimum height
等等text width
。text height
为了在给定坐标上拟合节点,我使用tikzlibrary{fit}
并将内部节点分离设置为0pt
。节点还具有为矩形定义的所有锚点。
评论:以这种方式声明矩形节点可能会导致节点内容的放置出现问题。它们可能会偏离节点中心。
答案2
您还可以定义一个节点放置在坐标的中间,并且大于两个坐标距离的一半。
\node[rounded corners, draw=red, minimum size=10cm] at (15,15) {};
以下是显示其适合的角:
输出
代码
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (bottom left) at (10,10);
\coordinate (top right) at (20,20);
\draw[rounded corners,fill=black] (bottom left) rectangle (top right);
\node[rounded corners, draw=red, minimum size=10cm] at (15,15) {};
\end{tikzpicture}
\end{document}