Accolade 在 TikZ 中将物体放在一起

Accolade 在 TikZ 中将物体放在一起

有没有办法{在 TikZ 中绘制一个将事物组合在一起的荣誉(-symbol)?我希望荣誉将三个矩形组合在一起。这意味着上部矩形的顶部必须是荣誉的顶部,下部三角形的底部必须是荣誉的底部。当然,我可以使用节点绘制荣誉,但我还没有找到确保尺寸满足此约束的方法。有没有解决方案或解决方法?

答案1

对我来说,这是一个更简单的解决方案,并且具有缩放的可能性。我添加了 Andrew 的想法的解决方案代码非常清晰,但我们无法进行缩放,也许有更好的解决方案可以垂直创建更多空间。使用矩阵的分隔符,括号更漂亮。

\documentclass[]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{fit,calc,positioning,decorations.pathreplacing,matrix}
\begin{document}   
\begin{tikzpicture}[decoration={brace}][scale=2] 
   \node [draw] (A) {A}; 
   \node [draw,yshift=1cm] (B) at (A) {B};
   \node [draw,yshift=1cm] (C) at (B) {C};
   \node [fit=(A) (B) (C)] (fit) {};              
  \draw [decorate,line width=1pt] (fit.south west) -- (fit.north west);
\end{tikzpicture} 
 \hspace*{1cm}
\begin{tikzpicture}[scale=2] 
\matrix [matrix of nodes,left delimiter=\{,nodes={draw}] {
A  \\[12pt] B \\[12pt] C \\
}; 
\end{tikzpicture}

\end{document} 

在此处输入图片描述

答案2

您可以使用fitTikZ 库创建一个包含节点的矩形节点,例如您的三个矩形。然后,您可以使用节点锚点来绘制您的节点,{使用缩放{字符 ( \resizebox{!}{<height of fit>}{\{}) 或使用绘图命令。两条贝塞尔曲线应该可以做到。

\documentclass[png]{standalone}

\usepackage{tikz}
\usetikzlibrary{fit,calc,positioning}

\begin{document}
\begin{tikzpicture}
   \node [draw] (A) {A};
   \node [draw,below of=A] (B) {B};
   \node [draw,below of=B] (C) {C};
   \node [fit=(A) (B) (C)] (fit) {};
   \path let \p1=(fit.north west), \p2 = (fit.south east) in
       node [left of=fit] {%
       \pgfmathsetmacro\heightoffit{.8*(\y1-\y2)}%
       \resizebox{!}{\heightoffit pt}{\{}%
     };%
\end{tikzpicture}
\end{document}

结果:

结果

相关内容