Language
|
||
前書き |
H. Jyounishi, Tokyo Japan |
|
Frame (Index), No frame version:0.3(latest) |
1. バージョンアップ 現在最新 version 0.3 =>変更履歴 2.ダウンロード (1) ダウンロードファイル : jar, src, images, サンプル図形データなど一式 (zipファイル) => DrawTopFile0_3_20180513.zip , DrawTopFile0_3_20161020.zip
(2) 実行方法 上記ファイルをダウンロードし、DrawTopX-Y.jarをダブルクリックすれば起動できる。 (3) 動作OS : Windows XP, Vista, Windows 7 (4) Windows 7でのトラブル Windows 7ではjarファイルをダブルクリックしても、"Could not find the main class:"のエラーメッセージが出て実行できないことがあろ。 3.開発の動機 戻る=>page top このセクションは、Javaプログラミングの練習のために試作したコンパクトなDrawing toolの仕様・実現方法を説明することが目的です。試作したコードはコメント、空白行を除き35,000ステップほどです。操作性は市販ソフトと同等で、左欄の目次を見てもらえれば分かるように、良く使われる機能は一通り実現しています。またCPU性能が大幅に向上したにもかかわらず、現在のdrawing toolがそれほど進歩していないと感じています。そこで有り余るCPUパワーを使って、何ができるかを検討しました。例えば次の機能は、計算量の多い処理(曲線間交点計算、曲線への最短点計算など)をリアルタイムで実行し、ダイアグラム、フローチャート等を作成するための作業量を大幅にへらすことができます。
(1) リアルタイム自動整列 図形をマウスドラッグで移動またはリサイズしている最中に隣の図形とある誤差範囲で整列すると、その整列状態を点線で表示しマウスボタンを離すと誤差ゼロで整列させる機能(auto_align、例題-1)。
(2) 接続点表示とコネクター マウスを図形に近づけるとマークを表示し、その位置でマウスをクリックしたり、マウスドラッグを開始したり終了させると、直線/折れ線/曲線の始点、終点を正確に図形上に定義できる機能(図形上の点の選択 )。この機能はコネクターを作成するために非常に有用である。あらかじめ接続点を作成する必要もないし、図形の境界上のどこにでも接続できる。
(3) 新しい機能を持つコネクター 図形境界の任意の点に接続でき、また1つの図形に何本でも接続できるコネクター(コネクター、例題-1)。またコネクターにコネクターを何段でも接続できる機能(例題1.3)。図形を移動/リサイズしたとき、それに接続するx方向、y方向コネクターの方向を変えない機能など(Auto trackingオプション)。この機能はコネクターの延長線と図形の交点計算をリアルタイムで実行することで実現される。 上記機能などをテストするには、ファイルをダウンロードし、jarファイルを起動してもらうだけです。操作説明書を書くために作成したサンプル図形もついてますので、すぐにテストできます。 =>ダウンロード
4.実装方法 戻る=>page top 上記(1)、(2)の実装方法について述べる。 (1) マウス位置モニター Drawing toolではマウスが図形のどこに位置しているかを知ることが重要である。この処理を実行するために、マウスが動くたびにマウスが表示中の図形にヒットしているか否かをリアルタイムで計算する。ここで"ヒット"とはマウスがある図形の上にあるか、非常に接近していることをいい、また表示中の図形とは、図形要素、テキスト領域、および補助図形(選択ボックス、リサイズハンドル、曲線の始終点、節点、接線方向)などである。 図形が閉図形の場合は、java.awt.Shapeのcontainsメソッドを使って図形の外側、内側、境界上のどこに位置しているかを簡単に判定できる。しかしこれだけでは不十分なので、マウス位置から図形境界線への最短点計算や、方向を指定した最短点計算(射影点計算)を使う。これらの計算を行なうためには、次のように図形の境界線をパラメトリック曲線で表す方法が有利である。 =>機能仕様書 幾何計算ライブラリー (2) パラメトリック曲線 パラメトリック曲線を使えば、図形の境界線上の点を図形境界線のパラメトリック曲線データと、点の位置を指定する曲線パラメータの組み合わせで表現できる。この方法を使うと、図形に移動、リサイズ、変形などの操作を施しても、点が図形境界線からずれるといった問題が起きないため様々な処理を単純化できる。このメリットを生かすためjava.awt.geomの図形をパラメトリック曲線に拡張した。 5. 他のアプリケーションとのデータ交換 戻る=>page top 図形もテキストも最低限のデータ交換はできる。
6.参考資料 戻る=>page top Javaの勉強をするために、次の資料を参照させていただきました。文献(4)はプログラミング技術には直接関係しませんが、 Javaを理解するには有益でした。
7.連絡先 戻る=>page top ドキュメントの不備、バグ、意見など。 メール:mail@627utech.com H. Jyounishi, Tokyo Japan |
Copyright (c) 2009-2013 All other trademarks are property of their respective owners. |