1

使用的小程序类似于具有域和范围 (0, 200) 的笛卡尔平面的第一象限。我的任务是在这个小程序中画出房子和太阳。我正在尝试为太阳画圆。我真的不知道从哪里开始。我们正在学习 for 循环和嵌套循环,所以它可能与此有关。我们没有数组,像 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;
}
4

2 回答 2

0

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

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

于 2013-10-13T21:34:32.030 回答
0

下面是我如何逐个像素地绘制圆的东北四分之一。您可以在其他四分之三的细微变化中重复此操作。不需要三角函数!

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

如果您遇到困难,请发表评论,将其转换为 Java,或针对其他四分之三的圆圈进行调整。

于 2013-10-13T21:39:17.193 回答