在LaTeX中使用tikz宏包及其擴展包共同繪制UML圖之備忘二
阿新 • • 發佈:2018-12-31
nor .com ssi RoCE alc node 分享 class -- 本篇所舉例子文件前面的內容與備忘一(在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圖之備忘二