居中对象网格

时间:2017-03-19 03:34:28

标签: javascript canvas processing p5.js

在标题中,我试图在P5 Spot(x, y, size)中创建一个对象网格,它们之间有一个4像素的空间,并在不使用translate的情况下将其置于画布上,这就是我所拥有的得到:

  gridSize = 7;
  spotSize = 60;
  spots = [];

  for (var y = height / 2 - ((gridSize * spotSize + gridSize * 4) / 2); y < (height / 2 - ((gridSize * spotSize + gridSize * 4) / 2)) + (gridSize * spotSize + gridSize * 4); y += spotSize + 4) {

    for (var x = width / 2 - ((gridSize * spotSize + gridSize * 4) / 2); x < (width / 2 - ((gridSize * spotSize + gridSize * 4) / 2)) + (gridSize * spotSize + gridSize * 4); x += spotSize + 4) {

      spots.push(new Spot(x, y, spotSize));

    }
  }

问题是我的网格看起来不对,为什么它不居中?可能是一个非常简单和愚蠢的错误,但我无法找到它。任何帮助赞赏。

我的Spot对象只是在给定的x和y处绘制一个椭圆。 http://codepen.io/felipe_mare/pen/GWyMOL

的整个代码

1 个答案:

答案 0 :(得分:1)

-SOLVED -

spots.push(new Spot(x + spotSize/2, y + spotSize/2, spotSize));

没有考虑椭圆是从中心绘制的事实,所以我必须添加圆的半径spotSize/2