标签:扩展 ast water nsa images 博客 ntc asi 51cto
本篇所举例子文件前面的内容与备忘一(在LaTeX中使用tikz宏包及其扩展包共同绘制UML图之备忘一)中的示例一是一样的,这里不再列出。% 51CTO 陆巍的博客
\begin{center}
\begin{tikzpicture}
\node(PaydayTransaction)[basic_class]{\textbf{\underline{Payday}\\ \underline{Transaction}}};
\node(Employee)[right = of PaydayTransaction, xshift = 1cm, basic_class, text height = 0.5cm, text depth = 0.2cm]{\textbf{\underline{Employee}}};
\node(PaymentClassification)[below = of Employee, yshift = -1.5cm, basic_class]{\textbf{\underline{Payment}\\ \underline{Classification}}};
%-------------
\umluniassoc[draw = purple]{PaydayTransaction}{Employee}
\umluniassoc[draw = purple]{Employee}{PaymentClassification}
% ------------
\draw[draw = purple, o-angle 45](PaydayTransaction.east)node[xshift = 1.2cm, yshift = 1.1cm, anchor = east]{Date} ++(1.2, 1.1) -- ++(0.6, 0);
\draw[draw = purple, -angle 45](PaydayTransaction.east)node[xshift = 0.8cm, yshift = 0.3cm, anchor = south]{1:Pay} ++(0.5, 0.3) -- ++(0.6, 0);
\draw[draw = purple, o-angle 45](Employee.south)node[xshift = 1.6cm, yshift = -0.7cm, anchor = west]{Date} ++(1.5, -0.2) -- ++(0, -0.6);
\draw[draw = purple, -angle 45](Employee.south)node[xshift = 1.8cm, yshift = -1.7cm, anchor = south]{1.1:CalculatePay} ++(0.3, -1.0) -- ++(0, -0.6);
\draw[draw = purple, o-angle 45](PaymentClassification.north)node[xshift = 1.6cm, yshift = 0.5cm, anchor = west]{Pay} ++(1.5, 0.1) -- ++(0, 0.6);
\end{tikzpicture}
\\[0.4cm]\heiti 图18.7 计算雇员薪水\song
\end{center}
效果如下:
说明:
1) 本例是UML中的协作图。
2) 注意线段绘制时相对坐标的表示,例如代码中的“++(0.6, 0)”,坐标前面的两个加号表示其是前面一个点的相对坐标,如果没有这两个加号,就是整个图形的绝对坐标。绘制这样的图形还是相对坐标更适合。
3) 注意在命令\underline{}里面不能包含\\,所以代码中多行名称是分成两段来写的。
4) 连线上的这些箭头、信息,最好是使用“... = of ...”这样的位置表示方法。使用绝对坐标也可以,但是在用到其他地方时不方便。
5) 以上在绘制箭头时的方法实际上有些繁琐,尤其是在调整位置时要反复尝试,以后有更简练的方法时再修改。
6) 注意,\node与\draw语句的最后要加分号。
在LaTeX中使用tikz宏包及其扩展包共同绘制UML图之备忘二
标签:扩展 ast water nsa images 博客 ntc asi 51cto
原文地址:http://blog.51cto.com/14013986/2337240