用于在相等距离处垂直或水平分布/对齐多个所选形状的算法

时间:2018-03-05 09:34:30

标签: algorithm

我需要编写逻辑来水平或垂直分布或对齐多个选定的形状,并在所选的形状/对象之间使用相等的空格。

在PowerPoint 2010中,我们有选项“Distribute horizo​​natlly”和“Distribute vertical”。 Please refer this link for clarification我必须在我的应用程序中实现类似的功能。

是否有任何算法可以满足我的要求?

1 个答案:

答案 0 :(得分:0)

注意:此处我只将@SaiBot评论转换为步骤

  1. 计算每个形状的最小矩形边框(这取决于您如何实现形状)。您可以通过使用编程语言的标记发布另一个问题来获得此步骤的帮助。。< / LI>
  2. 总形状宽度=所有形状宽度的总和。
  3. 剩余白色宽度=页面宽度 - 总形状宽度
  4. 空间(每个形状之间的空间)=剩余白色宽度/(n - 1)。其中n是形状的数量。
  5. 第一个形状位置为零(即最左边的点)。
  6. 每个形状(第一个除外)位置等于前面所有形状的总和+“空格”*这些形状的数量。

    如果形状索引(i)从0开始到n,形状宽度为Wi,形状起始位置为Pi,而Space是每个形状之间计算的空白区域,那么...

    空格=总和[从0到n](Wi)/(n - 1)

    Pi = Sum [从0到i](Wi)+ n * Space