0

我正在尝试开发一个看起来有点像这样的组件

我正在使用 RaphaelJS 来绘制这个并且效果很好。我有一个角度数组,用于计算各个段的路径。我将这些路径存储在一个简单的数组中,因此内圈位于段[0] 处,以此类推向外螺旋。

我的问题是我需要每个段都知道它是顺时针、逆时针、向内和向外的相邻段,我很难弄清楚如何计算这些段的位置是我的段数组。因此,例如,在上图的情况下,第 2 级的红色段(其中 0 是最内圈)有红色、亮绿色、柿子、浅紫色和深紫色邻居。

也许我需要一个不同的坐标系。如果每个级别具有相同数量和角度分布的段,则使用模数就像索引圆形数组一样简单,但事实并非如此。

任何帮助将非常感激。

非常感谢,

安东尼

4

1 回答 1

1

我会改变你如何将一个排序数组中的段存储到每个级别一个排序数组中。

找到给定段 (S) 的邻居就相当容易了:左右邻居是该级别数组的前一个和下一个元素。

相邻级别的邻居是通过在这些数组中的几个二分搜索找到的:找到与 S 的开始和结束角度重合的线段,邻居是这两者之间的线段序列。

于 2012-06-21T11:22:25.427 回答