何かのためにワークフロー/フローチャート スタイル デザイナーを作成しました。現時点では、比較的単純なベジエ曲線を使用して、ワークフローの「ブロック」のさまざまな終点を接続しています。
ただし、ユーザーにとってもう少し直感的なものが欲しいです。線が他のブロック (長方形) や、場合によっては他の線のような障害物を回避するようにします。
私はポリラインよりもベジエ スプラインを好みます。ベジエ スプラインの方がきれいで、一般的にデザイナーにより適しているように思われるからです。しかし、達成するのがはるかに難しい場合は、喜んで妥協します。
私は、この背後にたくさんの科学があることを知っています。Graphviz、Microsoft の GLEE、および商用の AGL (自動グラフ レイアウト) ライブラリなどを調査しました。
GLEEは生産に値するものではないようです。そして、彼らの商業的な代替手段は、まあ、商業的な代替手段です...それはかなり高価です.
Graphviz は .NET に移植されていないようです。
Windows Workflow Foundation が「フリーフォーム デザイナー」に使用するポリラインの実装を見てきました。これは機能しますが、製品グレードの外観ではありません。
この種のプラグアンドプレイ .NET ライブラリがないことに驚いていますか? 何かのようなもの:
Point[] RoutePolyline(Point begin, Point end, Rectangle[] rectObstacles, Point[] lineObstacles);