我想用 tikz 绘制(UML)类图(我知道有一个专门的 tikz 包)。我想模仿yuml.me用途,因为我个人觉得它非常有吸引力,同时又很严肃。以下是我想要实现的一个例子:
特别注意,边框内外有轻微的阴影/光晕,并且填充颜色使用了微妙的颜色渐变。
下面是一个放大的视图,可以更清楚地说明我的意思:
我尝试从 yuml 图中获取颜色值并将它们传输到 tikz,但我得到的最接近的结果如下:
\tikzstyle{class}=[
rectangle,
draw=black,
text centered,
anchor=north,
text=black,
text width=3cm,
shading=axis,
bottom color={rgb:red,222;green,222;blue,222},top color=white,shading angle=45]
\begin{tikzpicture}[node distance=2cm]
\node (Item) [class, rectangle split, rectangle split parts=2]
{
\textbf{Car}
\nodepart{second}foobar\newline baz
};
\end{tikzpicture}
它仍然很丑陋,远没有达到我想要达到的风格。
任何来自 tikz-experts 的帮助都将受到赞赏!
答案1
那这个呢?
只需用 替换旧的底部颜色定义bottom color=black!20
。更改该数字即可增加或减少饱和度。
答案2
正如 Alenanno 的建议,使用定义颜色宏将解决颜色问题。
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
\definecolor{bottomcol}{RGB}{222,222,222}
\begin{document}
\tikzstyle{class}=[
rectangle,
draw=black,
text centered,
anchor=north,
text=black,
text width=3cm,
shading=axis,
bottom color=bottomcol,top color=white,shading angle=45]
\begin{tikzpicture}[node distance=2cm]
\node (Item) [class, rectangle split, rectangle split parts=2]
{
\textbf{Car}
\nodepart{second}foobar\newline baz
};
\end{tikzpicture}
\end{document}
输出: