【发布时间】:2012-06-21 19:22:25
【问题描述】:
我正在尝试开发一个看起来应该是 somewhat like this 的组件
我正在使用 RaphaelJS 来绘制这个并且效果很好。我有一个角度数组,用于计算各个段的路径。我将这些路径存储在一个简单的数组中,因此内圈位于段 [0] 处,以此类推向外螺旋。
我的问题是我需要每个段都知道它是顺时针、逆时针、向内和向外的相邻段,我很难弄清楚如何计算这些段的位置是我的段数组。因此,例如,在上图的情况下,第 2 级的红色段(其中 0 是最内圈)有红色、亮绿色、柿子、浅紫色和深紫色邻居。
也许我需要一个不同的坐标系。如果每个级别都有相同数量和角度分布的线段,那么使用模数就像索引圆形数组一样简单,但事实并非如此。
任何帮助将不胜感激。
非常感谢,
安东尼
【问题讨论】:
-
当一个片段与两个外部或内部片段重叠时会发生什么?还是更多?
-
从给定段的角度来看,如果多个外部段“覆盖”该段,则它们都被视为与该原始段相邻。内部段也一样。
-
您必须遍历相邻的外部和内部段,并检查切片两端的角度是否在/等于彼此段的末端,反之亦然。不是一个“快速”的过程,但可能是最简单的。
-
您不应该在 Stack Overflow 上发布暂时可用的图片链接,例如您的 Dropbox 链接(现在已经消失,仅在发布您的问题一周后)。 Stack Exchange 有自己的图片服务器,如果您在发布问题时上传图片,您的图片会自动上传和链接。如果您需要再次在问题(或答案)中发布图片,能否重新上传您的图片并使用此功能?
标签: javascript math geometry raphael computational-geometry