简化坐标计算

时间:2016-08-14 18:27:03

标签: algorithm math lua

我有一个N元素数组。

需要将它们放在屏幕上,就像一组组一样,每组都是一个4x4的元素表。表的宽度为 TW = 320px。高度 TH = 480px。

在每个表的本地坐标中:

  • 列之间的间隙必须相等;第一列和左边界之间的间隙必须等于第四列和右边界之间的间隙,并且必须等于 bordersGapX = 60px。
  • 行之间的差距必须相等 rowsGapY = 60px;第一排起始于第1周150px。

在屏幕的全局坐标中:

  • 表格必须一个接一个地放置,其间隙为 tablesGapX = 300 px;

希望相关图片有助于...... pic.1

现在我们需要为循环中的每个元素设置X和Y位置,只需使用等式 - 没有 if 运算符或内部循环......

我真的不记得是怎么回事,但我最终得到了类似的东西,并且有效:

for i=1,N do
    element.x, element.y = 
    (((i%4)==0) and (TW-borderGapX) or ((i%4==1) and borderGapX or borderGapX+((TW-borderGapX*2)/3)*((i%4)-1) ))+math.floor(i/16)*tablesGapX - ((((i%4==0) and (i%16==0))) and tablesGapX or 0), 
    firstRowY+math.floor((i-1)/4)*rowsGapY - (math.floor(i/16)*rowsGapY*4) + ((((i%4==0) and (i%16==0))) and rowsGapY*4 or 0)
end

有人请帮我简化!!!

0 个答案:

没有答案