如何用像素数组绘制圆圈?

时间:2018-04-01 04:47:32

标签: java pixels 2d-games

所以我目前正在使用java进行2D游戏,玩家在屏幕上看到的图像显示为像素数组,其中数组中的第一个像素显示在屏幕上的位置(0,0)< / p>

给定(x,y)坐标时,数组中任何一个像素的索引位置等于:

  (x + (y * width)),  where width is the width of the open game window.

因此,要更改像素的颜色,我正在使用此代码:

  pixels[x+y*width] = color;

我试图用圆形方程绘制一个圆,其中(h,k)是圆的中心:

  (x-h)^2 + (y-k)^2 = r^2,     r is the radius.

目前,使用这个等式,我得到一个未完成的圆圈,左上角以某种方式丢失。这是我的代码和输出图片:

    for (xp = h-r; xp < h+r; xp++) {
        yp = (int) Math.sqrt(Math.pow(r, 2) - Math.pow((xp-h), 2))+k;

        pixels[xp+yp*this.width] = color;
    }

    for (int yi = k-r; yi < k+r; yi++) {
        yp = yi;

        xp = (int) Math.sqrt(Math.pow(r, 2) - Math.pow((yp-k), 2))+h;

        pixels[xp+yp*this.width] = color;
    }

--->> Unfinished Circle Pic.<<---

非常感谢任何帮助,谢谢!

0 个答案:

没有答案