私は、長方形のノードと無向エッジからなるJavaで「ペイント」アプリケーションを作成しています。問題は、エッジの始まりがエッジが接続されている矩形の中央にあり、エッジの終わりがこのエッジが接続されている他の矩形の中央にあることです。Javaを正しい順序で描画する
矩形とエッジの交点を描くのを避けるために、最初にエッジを描き、それをエッジの上に配置して交差を隠すようにします。
この問題は、エッジに対応していない別のノードがエッジに沿って配置されている場合に発生します。このシナリオでは、エッジが最初に描画されるため、ノードはエッジの上に表示されます。しかし、それは私が望むものではありません。ノードの上にエッジが表示されるようにします。
画像: how it isとhow it should be
最初のノードを描き、その後、それが接続されている2つのノードとエッジの交差を回避辺を描くようになり、この問題を解決するために私は考えることができる最も包括的な方法。しかし、私はdrawLine
を使ってエッジを描くので、紙ではできません。交差点を確認することはできません。
これは私が最初にエッジを描く理由ですが、私が言及した問題が発生します。何か案は?
問題は、ノードが優先度のようなものを持っていれば解けるだけで、ノードの優先度でソートすることができます。最初にノードの接続をレンダリングし、ノードをレンダリングします。フォローイングノードのために繰り返します。発注基準のようなものがない場合、正しい単一の解決策はない - あるいはむしろ正しい解決策が考えられる。 – Durandal