![Tikz-uml 创建嵌套关系](https://linux22.com/image/310180/Tikz-uml%20%E5%88%9B%E5%BB%BA%E5%B5%8C%E5%A5%97%E5%85%B3%E7%B3%BB.png)
我在用tikz-uml,但似乎没有 UML 嵌套关系。我不太擅长使用 tikz,你能帮我实现它吗?你可以看看它应该是什么样子此处最后标题为“嵌套”。
例如,以下是聚合的实现方式
\tikzstyle{tikzuml aggregation style}=[color=\tikzumldrawcolor, open diamond-]%
\newcommand{\umlaggreg}[3][]{\umlrelation[style={tikzuml aggregation style}, #1]{#2}{#3}}%
答案1
我遇到了同样的问题tikz-uml
,我使用了以下方法。tikzset 选项是从这个回答。
\tikzset{cross/.style={cross out, draw=black,
minimum size=2*(#1-\pgflinewidth), inner sep=0pt, outer sep=0pt},
%default radius will be 1pt.
cross/.default={1pt}}
\begin{tikzpicture}
\begin{umlpackage}{Package}
\umlclass{Class}
{
}
{
+ <<Creator>> Class()
}
\umlclass[y=-3]{InnerClass}
{
}
{
+ <<Creator>> InnerClass()
}
\node[circle, scale=0.5, minimum size =2pt,
draw] (Nested) at (0, -0.7) {};
\draw (0, -0.7) node[cross=2pt,rotate=45]{};
\draw (InnerClass.north) -- (Nested.south);
\end{umlpackage}
\end{tikzpicture}
这将产生下图:
答案2
我将很快发布 tikz-uml 的新版本并添加此新关系。它将被称为\umlnesting