所以我目前正在使用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.<<---
非常感谢任何帮助,谢谢!