矩形(算法或库)之间的等距线

时间:2019-07-18 16:56:18

标签: javascript algorithm computational-geometry rectangles

我正在寻找一种算法或库来绘制等距矩形之间的连接线。 我需要在用JavaScript编写的编辑器中实现此类功能。所有矩形都是可拖动的,并且算法必须尽可能高效。拖动矩形之一时将计算等距线。

在某些编辑器(例如Keynote或PowerPoint)中可以看到此功能。 请查看屏幕截图:equidistant markers

重要的一点:算法应计算矩形相对于最接近的同胞等距的点。因此,当拖动到等距点附近时,可以将矩形顶部对齐。

我尝试实现以下算法:

  1. 相对于拖动(选定)矩形,通过X和Y轴查找所有矩形
  2. 将找到的集合划分为子集:“顶部”,“底部”,“左”,“右”,并找到与每个集合中所选矩形最接近的子集
  3. 测量最接近的矩形和选定矩形之间的距离
  4. 对于第2步中发现的矩形,从第1步开始重复操作,而不是找到最接近的矩形,而是按照第3步中的定义查找相同距离的矩形。
  5. 递归地重复步骤4,直到在一定距离内找不到任何矩形。

我无法计算用于拖动矩形的实现捕捉功能的等距点。我还担心性能,因为所有计算和排序都应该在“ ondrag”事件(每秒多次)上执行。

有什么方法可以优化我的算法?

0 个答案:

没有答案