You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求5504×1504画布中按目标数量生成正方形的尺寸计算算法

算法方案

核心思路

要让正方形尽可能高效铺满5504×1504的画布,需先匹配画布的宽高比例(约3.66:1),再通过计算合适的行列数,得出不超出画布的最大正方形边长。

具体步骤

  1. 计算画布宽高比:
    画布宽度W=5504,高度H=1504,宽高比 ratio = W / H ≈ 3.66

  2. 确定行列数:
    设目标正方形数量为N,需找到整数x(每行数量)和y(每列数量),满足:

    • x * y ≥ N
    • x / y尽可能接近ratio(减少留白浪费)
      推导可得:x ≈ sqrt(N * ratio),y ≈ sqrt(N / ratio),再将x、y取整(向上取整或调整到最接近的整数组合,保证x*y≥N)
  3. 计算正方形边长:
    正方形的最大可能边长为 side = min(W / x, H / y),确保所有正方形都能放进画布。

示例计算

案例1:目标数量N=200

  • 计算x≈sqrt(200*3.66)=sqrt(732)≈27.05,取x=27
  • y≈sqrt(200/3.66)=sqrt(54.64)≈7.39,取y=8(此时27*8=216≥200)
  • 边长side=min(5504/27≈203.85, 1504/8=188) → 188
    (若调整x=28,y=8,28*8=224≥200,边长仍为188,结果一致)

案例2:目标数量N=500

  • x≈sqrt(500*3.66)=sqrt(1830)≈42.78,取x=43
  • y≈sqrt(500/3.66)=sqrt(136.61)≈11.69,取y=12(43*12=516≥500)
  • 边长side=min(5504/43≈128, 1504/12≈125.33) → 125
    (验证:43*125=5375≤5504,12*125=1500≤1504,仅剩余4像素高度留白)

补充说明

  • 若追求刚好生成N个正方形(不多生成),可选择x*y=N的组合,比如N=200时取x=25,y=8,此时边长仍为188,仅每行留白更多。
  • 若允许正方形之间有间隙,只需在计算边长时减去间隙宽度再调整即可。

内容的提问来源于stack exchange,提问作者Mehdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:36:00