在LaTeX中使用tikz宏包及其擴展包共同繪製UML圖之備忘二

  本篇所舉例子文件前面的內容與備忘一(在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}

效果如下:
在LaTeX中使用tikz宏包及其擴展包共同繪製UML圖之備忘二
說明:
  1) 本例是UML中的協作圖。
  2) 注意線段繪製時相對座標的表示,例如代碼中的“++(0.6, 0)”,座標前面的兩個加號表示其是前面一個點的相對座標,如果沒有這兩個加號,就是整個圖形的絕對座標。繪製這樣的圖形還是相對座標更適合。
  3) 注意在命令\underline{}裏面不能包含\\,所以代碼中多行名稱是分成兩段來寫的。
  4) 連線上的這些箭頭、信息,最好是使用“... = of ...”這樣的位置表示方法。使用絕對座標也可以,但是在用到其他地方時不方便。
  5) 以上在繪製箭頭時的方法實際上有些繁瑣,尤其是在調整位置時要反覆嘗試,以後有更簡練的方法時再修改。
  6) 注意,\node與\draw語句的最後要加分號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章