2010-12-02-01-SVG と UML の話 - 7 - project-enigma

2010-12-02-01-SVG と UML の話 - 7

>> Site top >> weblog >> 月別アーカイブ >> 2010年12月のlog >> 2010-12-02-01-SVG と UML の話 - 7

最終更新日付:2013/12/31 07:35:45


SVG と UML の話 - 7

2010 年 12 月 02 日

今回は、コネクタ以外のダイアグラム要素の位置指定方法について。

前々回、クラスの指定方法として以下のようなものをお目にかけた。

class
name:Foo
position:200 100

その時、position に続けて図面上の位置を指定すると書いた。上の例では 200 100 という部分がそれだ。ここで、200 の部分が x 座標、100 の部分がy座標になる。具体的に位置を指定するこの方法は一番わかり易い例だ。

前々回の例では、クラスがもう1つあったが、その位置指定がもう少し複雑だったのを覚えているだろうか。具体的には、以下のようになっていた。

class
name:Bar
position:Foo,200,+ Foo

Foo の名前と200、そして+がカンマで区切られているが、これは何だろう? 逆ポーランド記法をご存知の方なら想像がつくだろう。これは、Foo の位置を基準とした相対位置を計算式(後置式)で指定しているのだ。上の例では、x 座標は「Foo(の x 座標)に 200 を足した値」であり、y 座標は「Foo(の y 座標)と同じ値」になる。要するに、「Foo の右にある」と言っているわけで、Foo の位置が変わると Bar の位置も変わる。Foo.x などとしないあたりは単純にサボっているわけだが、個人的にはこれで十分だ。

この記法はそれなりに強力で、Foo,Bar,+,2,/ のようにすれば2つのダイアグラム要素の丁度真ん中をとることもできる。そして、ある要素の position 記述で参照する他の要素は、それよりも手前(つまり上)ですでに登場した名前でなければならない。このルールにより、名前の参照が循環することはなくなる。この参照ルールは、コネクタの from や dest 指定などでも同じだ。

他要素との相対値によるダイアグラム要素の位置指定は、かなり早い段階からその必要性を認識していたように思う。図面上でのバランスを調整するために1つ1つのダイアグラム要素の位置を微調整するのは苦痛な作業だ。しかし、相対的な位置関係がきちんと記述されていれば、思いの他少ない作業量で済むようになる。

実際のところ、相対位置の指定だけでは軽減できない同期の問題があったため、それ以外の機能も盛り込むことになるが、それはまた別の話だ。次回以降、改めて書いてみよう。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.