如何使用图形应用程序逐个像素地绘制java中的圆圈?

时间:2013-10-13 21:28:42

标签: java applet draw geometry

使用的小程序就像具有域和范围(0,200)的Cartisian Plane的第一象限。我的任务是在这个小程序中画一个房子和一个太阳。 我想画太阳的圆圈。我真的不知道从哪里开始。我们正在学习for循环和嵌套循环,所以它可能与此有关。我们还没有数组,这个applet不存在像draw.circle这样的常规函数​​。如果它有帮助,这就是我为房子绘制屋顶的方法(两个直角三角形):注意它是逐个像素绘制的。我怀疑我的老师想要同样的事情。

//roof
//left side
double starty = 100;
for(double x = 16; x <= 63; x++){
        for(int y = 100; y <= starty; y++){
               img.set(x, y, JRaster.purple);
        }
starty += 1;
}

//right side
double startx = 110;
for(int y = 100; y <= 147; y++){
       for(double x = 63; x <= startx; x++){
               img.set(x , y, JRaster.purple);
       }
startx -= 1;
}

2 个答案:

答案 0 :(得分:0)

我不会给你代码,但你应该记住如何制作一个圆圈。从theta = 0到theta = 2 * pi,圆圈由x=cos xy=sin x跟踪。

因此,使用for循环将double(此处称为theta)增加0.01之后,直到2 * pi(2*Math.PI或大约6.28)为Math.cos(theta), Math.sin(theta)

答案 1 :(得分:0)

以下是我将如何逐个像素地绘制圆的东北四分之一。您可以在其他三个季度稍微改变一下。不需要三角学!

  • 首先绘制圆圈的最东点。然后你将绘制更多的像素,向北和向西移动,直到你到达圆圈的最北端。
  • 计算刚刚从中心绘制的点的距离。如果它超过半径,那么你的下一个像素将是左边的一个,否则,你的下一个像素将是上面的像素。
  • 重复上一步,直至到达最北端。

发布评论如果你遇到困难,将其转换为Java,或者在圈子的其他四个季度进行调整。