Rainbow
/*
- File: Rainbow.java
- Name:
- Section Leader:
- This file is the starter file for the Rainbow problem.
*/
import java.awt.Color;
import acm.graphics.;
import acm.program.;
import acm.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Rainbow extends GraphicsProgram {
public void run() {
GRect background = new GRect(0, 0, getWidth(), getHeight()); // 맨위의 바탕색깔을 cyan으로 지정한다.
background.setFilled(true);
background.setFillColor(Color.CYAN);
add(background);
makeLine(0,Color.RED);
makeLine(1,Color.ORANGE);
makeLine(2,Color.YELLOW);
makeLine(3,Color.GREEN);
makeLine(4,Color.BLUE);
makeLine(5,Color.MAGENTA);
makeLine(6,Color.CYAN);
}
public void makeLine(int i, Color color) { // 차례대로 위에서부터 반지름이 (너비^2 + 높이^2)/높이 인 원을 그려준다.
double a = getWidth();
double b = getHeight();
double r = (a*a/4+b*b/4)/b*2.6; //
double h = 35; // 원끼리의 차이를 30으로 잡는다.
double x = a/2-r/2;
double y = r/2+b/2-700;
GArc circle = new GArc(x+h*i/2,y+h*i/2,r-h*i,r-h*i,0, 180);
// x, y 좌표를 고정해준다음에 반지름 크기를 줄여서 원을 만들어 준다.
// 이떄 반지름 크기를 줄이게 되면 원의 위치가 이동하기 떄문에 줄어드는 만큼의 반만큼 반대로 이동시켜준다.
add(circle);
circle.setFilled(true);
circle.setColor(color);
}
}
Author And Source
이 문제에 관하여(Rainbow), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yjun209/Rainbow저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)