DrawStoplight

Retired DISLab
Swpark (토론 | 기여) 사용자의 2014년 1월 26일 (일) 09:50 버전
(비교) ← 이전 판 | 현재 판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기
/*
 * File: DrawStoplight.java
 * ------------------------
 * This program draws a traditional stoplight with a red, yellow,
 * and green light in a gray rectangular frame.
 */
 
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
 
public class DrawStoplight extends GraphicsProgram {
 
	public void run() {
		double cx = getWidth() / 2;
		double cy = getHeight() / 2;
		double fx = cx - FRAME_WIDTH / 2;
		double fy = cy - FRAME_HEIGHT / 2;
		double dy = FRAME_HEIGHT / 4 + LAMP_RADIUS / 2;
 
		GRect frame = new GRect(fx, fy, FRAME_WIDTH, FRAME_HEIGHT);
		frame.setFilled(true);
		frame.setColor(Color.GRAY);
		add(frame);
 
		add(createFilledCircle(cx, cy - dy, LAMP_RADIUS, Color.RED));
		add(createFilledCircle(cx, cy, LAMP_RADIUS, Color.YELLOW));
		add(createFilledCircle(cx, cy + dy, LAMP_RADIUS, Color.GREEN));
	}
 
        /*
         * Creates a circular GOval object centered at (x, y) with radius r.
         * The GOval is set to be filled and colored in the specified color.
         */
	private GOval createFilledCircle(double x, double y, double r,
	                                 Color color) {
		GOval circle = new GOval(x - r, y - r, 2 * r, 2 * r);
		circle.setColor(color);
		circle.setFilled(true);
		return circle;
	}
 
        /* Private constants */
	private static final double FRAME_WIDTH = 50;
	private static final double FRAME_HEIGHT = 100;
	private static final double LAMP_RADIUS = 10;
 
	private static final long serialVersionUID = 1;
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기