我正在尝试开发一个应该看起来somewhat like this
的组件我正在使用RaphaelJS来绘制这个并且效果很好。我有一组角度,我用它来计算各个段的路径。我将这些路径存储在一个简单的数组中,因此内圈位于段[0],依此向外螺旋。
我的问题是我需要每个片段都知道它的顺时针,逆时针,向内和向外的相邻片段,我很难弄清楚如何计算这些片段的位置是我的片段阵列。因此,例如,在上图的情况下,2级的红色段(其中0是最内圈)具有红色,亮绿色,kaki,浅紫色和深紫色邻居。
也许我需要一个不同的坐标系。如果每个级别具有相同的段数和角度分布,那么使用模数就像索引一个圆形数组一样简单,但事实并非如此。
非常感谢任何帮助。
非常感谢,
安东尼
答案 0 :(得分:1)
我会改变你如何将每个排序数组中的段存储到每个级别的一个排序数组中。
找到给定段(S)的邻居是相当容易的:左右邻居是该级别数组的前一个和下一个元素。
相邻级别中的邻居在这些数组中找到了几个二进制搜索:找到与S的起点和终点重合的段,邻居是这两个段之间的段序列。