ログイン
検索
メインメニュー
開発者ブログ
ブログ一覧
ChangeVisionメンバーズ分布マップ
murataさんのエントリ  murataさんのエントリ配信

2008/02/13
ブログ再開します&ちょっとインチキな数学の応用について

執筆者: murata (12:08 pm)
時々、JUDEとは関係ない時事ネタ等の長文を書いているMurataです。
誰も告知していない様なので、お断りしておきますが、実は2006年以前のブログのエントリーの中には、データ移動時の不具合から、本文が途中で途切れたり、折角付けていただいたコメントが消えたりしているものが存在します。これらのデータは完全に消えてしまいましたので、復元する事はできません。大変遅くなりましたが、ご了承いただきたくお願いします。

さて、多少開発者ブログらしい話題を一つ。JUDE/Professional5.2から対応したデータフロー図ですが、私はプロセスの表現を担当しました。デマルコ方式では、プロセスは円形で表現されるわけですが、この中に、菱餅の様に三段重ねになった、識別子、プロセス名、担当者の3つを適切に配置しなければなりません。



逆に言えば、これら3つのテキストボックスが円の大きさを決定するわけですが、テキストボックス自体にも、各々改行を工夫するなどして形状を工夫する余地があるわけです。

つまり、色々考えられるテキストボックスの大きさや配置の中から、最も外接円が小さくなる様な配置を導き出す必要があるわけです。

更に言えば、そうした各テキストの配置が、「美しく」なっていないといけないというファジーな要求仕様も満たさないといけないわけです。

私は最初、これを複雑な計算式で導き出そうとしていたのですが、挫折してしまいました。

で、どうしたのかというと、まず、データーフロー図でありがちなテキストを何種類か想定して、いくつかのパターンについて、テキストボックスをこしらえて、3段重ねにした時に、それぞれのパターンについて、全体で円に近くなるようにするわけです。それらに外接する円ならば、もっとも小さな外接円に近いものになる筈です。

あとは、テキストを編集した時に、いきなり円の大きさが急変しないように、トライ&エラーを繰り返しながら微調整という、あまり数学的とは言いがたい方法で、仕上げました。なので、5.2については、β版とリリース版で、テキストを編集した時の挙動が異なると思います。

唯一、「学校で数学を勉強していて良かった」と思える様な解決をした部分があります。円内に3つのテキストボックスを配置する時に、ボックス同士の距離をどうするのかという部分で、二次方程式の「解の公式」を応用しています。

昨今教育の現場で叫ばれている「理科・数学離れ」の原因として「将来何の役に立つのかわからないから」というのがありますが、まあ、こういう時に役に立ちますので、子供たちには「勉強しておいて損はないよ」とは言えるんじゃないかなと思います。

まあ、私自身、以前に幾何計算が沢山出てくるCADの保守開発をしていた時に、高校の「数学機廚了温予颪鯒磴辰討て、勉強しなおしたのを覚えていますし。
murataさんのブログを読む | コメント (0) | トラックバック数 (0) | 閲覧数 (4554)
このエントリのトラックバックURL
http://astah-users.change-vision.com/ja/modules/weblog/weblog-tb.php?181
印刷用ページ 友達に送る