线段上均匀分布n个点的计算公式适用问题咨询
线段均匀布点计算公式
基础约束
- 设线段总长度为
L,需要排布的点数量为n,需满足0 < n ≤ L/2,否则无法完成符合要求的均匀分布 - 所有相邻点的固定间距
d计算公式为:
若为整数坐标的栅格场景(比如示例中的字符排布),d取向下取整结果:d = L / nd = L // n
分场景坐标计算公式
默认线段起始坐标为0,终点坐标为L,k为点的序号,取值范围为1 ≤ k ≤ n
1. 居中排布(对应示例中n=1、n=2、n=5的默认效果)
所有点在线段上居中放置,左右两侧留白宽度相等:
x_k = (L - d*(n-1))/2 + (k-1)*d
验证(L=10,n=2,d=5):x₁=(10-5*1)/2 + 0 = 2.5,x₂=7.5,对应字符位取整后为3和8,和示例--0----0--一致。
2. 左对齐排布(对应示例中n=3的左侧排布效果)
优先保证左侧留白宽度最小:
x_k = 1 + (k-1)*d
验证(L=10,n=3,d=3):x₁=1,x₂=4,x₃=7,对应字符排布为-0--0--0--,和示例完全一致。
3. 右对齐排布(对应示例中n=3的右侧排布效果)
优先保证右侧留白宽度最小:
x_k = L - (n - k + 1)*d + 1
验证(L=10,n=3,d=3):x₁=2,x₂=5,x₃=8,对应字符排布为--0--0--0-,和示例完全一致。
内容的提问来源于stack exchange,提问作者Arnau Mas
相关产品推荐
相关产品推荐

