Skip to main content
Inspiring
November 30, 2023
解決済み

For Loop

  • November 30, 2023
  • 返信数 2.
  • 320 ビュー

I am trying to make a grid (6 columns) as I duplicate layers, when I reach copy 7 it is positioned below the first ones. I achieved it with an if else expression but it is manual, I have to replicate the statement every 6 layers for it to repeat. "number" I added with the index of the layer.

 

 

basically I have the loop in javascript but I don't know how to integrate it to the Y axis position, I want the first row 1 (layer 1 to 6) to be at 5 pixels, row 2 (layer 7 to 12) to be 10 px and so on

このトピックへの返信は締め切られました。
解決に役立った回答 Dan Ebberts

I'm not sure this formula is exactly right for your situation, but it should get you close:

numCols = 6;
n = index - 1;
col = n%numCols;
row = Math.floor(n/numCols);
x = 10 + col*5;
y = (row+1)*5;
[x,y]

返信数 2

Dan Ebberts
Community Expert
Dan EbbertsCommunity Expert解決!
Community Expert
November 30, 2023

I'm not sure this formula is exactly right for your situation, but it should get you close:

numCols = 6;
n = index - 1;
col = n%numCols;
row = Math.floor(n/numCols);
x = 10 + col*5;
y = (row+1)*5;
[x,y]
Mathias Moehl
Community Expert
Community Expert
November 30, 2023

"Math.ceil(number/6)" should give you the row number (starting with 1).

 

Hence, you want something like

5 + 5 * Math.ceil(number/6)

Mathias Möhl - Developer of tools like BeatEdit and Automation Blocks for Premiere Pro and After Effects