Q21. 写一条利用for循环程序画出下面的图形。窗口大小为:170 x 170 px
“spiral” 从 (0,10),向右 160,向下 150,向左 150, 向上140…
import java.awt.*;
//调取图形包
public class Q28 {
//这个实验看上去很复杂,其实是很入门的算法
public static void main(String[] args) {
// TODO Auto-generated method stub
spiral(32);
//旋转32次
}
public static void spiral(int num) {
int x1 = 0;
int y1 = 10;
int x2 = 0;
int y2 = 10;
//初始坐标
DrawingPanel panel = new DrawingPanel(170, 170);
for (int i=1;i<=num;i++) {
Graphics g = panel.getgraphics();
//获得图形
g.setColor(Color.BLACK);
//每一次的旋转以四次为周期,没旋转一次减少/增加20 px
if (i%4 ==0) {
y2 = y1 -160 + (i/4)*20;
}else if (i%4==1 ) {
x2 = x1 + 160 -(i/4)*20;
}else if (i%4==2) {
y2 = y1 + 150 - (i/4)*20;
}else if (i%4 ==3) {
x2 = x1 - 150 +(i/4)*20;
}
g.drawLine(x1, y1, x2, y2);
x1 = x2;
y1 = y2;
}
}
}