通过指定两个相对的角在 tikz 中放置一个矩形节点

通过指定两个相对的角在 tikz 中放置一个矩形节点

\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 widthtext height

为了在给定坐标上拟合节点,我使用tikzlibrary{fit}并将内部节点分离设置为0pt。节点还具有为矩形定义的所有锚点。

评论:以这种方式声明矩形节点可能会导致节点内容的放置出现问题。它们可能会偏离节点中心。

答案2

您还可以定义一个节点放置在坐标的中间,并且大于两个坐标距离的一半。

\node[rounded corners, draw=red, minimum size=10cm] at (15,15) {};

以下是显示其适合的角:

在此处输入图片描述 在此处输入图片描述

输出

图1

代码

\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}

相关内容