GNU PIC で アクティビティ図
GNU PIC でアクティビティ図 を書く。
図 GNU PIC でアクティビティ図
.ps 14 # font size .PS scale = 2.54; # inch -> cm arrowwid=0.5; arrowhead=0; define branch {[ box $1 ht $2 wid $3 invisible; line from last box.n to last box.e; line from last box.n to last box.w; line from last box.s to last box.e; line from last box.s to last box.w; ]} define merge {[ branch($1, $2, $3); ]} define folk {[ line right thick 2; move to last line.start; line left thick 2; ]} define join {[ folk(); ]} define spawn {[ circle fill 1; ]} define finish {[ circle rad 0.5 fill 1; circle with .c at last circle.c; ]} down; Start: spawn(); move to Start.s; arrow; Branch: branch("branch", 1, 3); move to Branch.e; line right; arrow down; Folk: folk(); "folk" ljust at Folk.e + (0.5, 0); move to 1/2 of the way between Folk.s and Folk.sw; line down; line left; arrow down; Process: ellipse "process" wid 3; move to 1/2 of the way between Folk.s and Folk.se; line dashed 0.1 down; line dashed 0.1 right; arrow dashed 0.1 down; Object: ellipse "<<object>>" "" "object" ht 2 wid 4; move to (Folk.s.x, Object.s.y - moveht * 2); Join: join(); "join" ljust at Join.e + (0.5, 0); line up from 1/2 <Join.n, Join.nw> <-; line left; line up to Process.s; line dashed 0.1 up from 1/2 <Join.n, Join.ne> <-; line dashed 0.1 right; line dashed 0.1 up to Object.s; move to Join.s; line down; arrow left; Merge: merge("merge", 1, 3) with .e at last arrow.end; move to Branch.w; line left; line down to (last line.end.x, Merge.w.y); arrow to Merge.w; arrow down from Merge.s; finish(); .PE