0

私はこのように見えるはずのコンポーネントを開発しようとしています

私はRaphaelJSを使用してこれを描画していますが、これは問題なく機能します。個々のセグメントのパスを計算するために使用する角度の配列があります。これらのパスを単純な配列に格納して、内側の円がセグメント[0]にあるようにし、以下同様に外側に向かってらせん状にします。

私の問題は、各セグメントが時計回り、反時計回り、内向き、外向きの両方で隣接するセグメントを認識する必要があることです。これらの位置を計算する方法が私のセグメント配列であることがわかりません。したがって、たとえば、上の図の場合、レベル2の赤いセグメント(0は最も内側の円)には、赤、明るい緑、カキ、薄紫、濃紫の隣接があります。

おそらく、別の座標系が必要です。各レベルのセグメントの数と角度の分布が同じである場合、円形配列にインデックスを付けるようなモジュラスを使用する単純なケースになりますが、そうではありません。

どんな助けでも大歓迎です。

どうもありがとう、

アンソニー

4

1 に答える 1

1

レベルごとに1つの並べ替えられた配列から1つの並べ替えられた配列にセグメントを格納する方法を変更します。

与えられたセグメント(S)の隣接を見つけることは、かなり簡単です。左と右の隣接は、そのレベルの配列の前と次の要素です。

隣接するレベルの隣接は、それらの配列での2つのバイナリ検索で検出されます。Sの開始角度と終了角度に一致するセグメントを検索します。隣接は、これら2つの間のセグメントのシーケンスです。

于 2012-06-21T11:22:25.427 に答える