我正在尝试使用pixi.js生成一个像素化的圆圈,并且遇到了一些问题。
使用此代码:
for (var x = 0; x <= r; x+=10)
{
var drawY = Math.sqrt(Math.pow(r,2) - Math.pow(x,2)).roundTo(10);
for (var y = 0; y <= drawY; y += 10)
{
graphics.drawRect(x , y, 10, 10);
graphics.drawRect(y , x, 10, 10);
graphics.drawRect(-x , y, 10, 10);
graphics.drawRect(-y , x, 10, 10);
graphics.drawRect(x , -y, 10, 10);
graphics.drawRect(y , -x, 10, 10);
// graphics.drawRect(-x, -y, 10, 10);
// graphics.drawRect(-y, -x, 10, 10);
}
}
我明白了:
如果我取消注释最后两行给我最后一个象限,我得到这个:
如果我评论除最后两行之外的所有内容,我会得到:
我想也许它与纹理的大小有关,或者因为它是用负坐标绘制的,但是这些都没有理由看其他象限的结果。
修改
用我的代码搞砸了,并提出了一种更有效的绘制圆圈的方法,但现在问题似乎更加奇怪。
graphics.drawRect(0,0,10,10);
给出:
,而
graphics.drawRect(0,0,10,10);
graphics.drawRect(0,-200,10,10);
给出完全相同的东西(仍然只有一个方格),但是
graphics.drawRect(0,0,10,10);
graphics.drawRect(0,200,10,10);
给出:
和
graphics.drawRect(0,0,10,10);
graphics.drawRect(-200,-200,10,10);
给出:
再次更新
因此,如果我在整个事物周围绘制一个正方形网格,则圆圈会完美地绘制。