Jun's Blog

[Java] 도형 그리기 프로그램 (세모, 동그라미) 본문

Java

[Java] 도형 그리기 프로그램 (세모, 동그라미)

Fizzyelf 2020. 9. 29. 20:15
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class DrawShape extends Frame{
	public static void main(String[] args) {
		DrawShape ds = new DrawShape(); 
	}
	
	DrawShape(){
		
		super("그림 그릴거야");	// 내 부모에 있는 생성자 호출	, 타이틀 생성
		setSize(500, 500);
		setBackground(Color.MAGENTA);
		setVisible(true);
		setResizable(false);
		
		addWindowListener(new WindowAdapter() {
			
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
		@Override
		public void paint(Graphics g) {
			//1. 매개변수가 두개인 생성자를 이용하여 Circle 객체를 만들어주세요
			Point cp = new Point(300,300);
			Circle cc = new Circle(150,cp);

			//2. g.drawOval() 원을 그려주세요
			g.drawOval(cc.center.x, cc.center.y, cc.r, cc.r);
			
			//3. 매개변수가 하나인 생성자를 이용하여 Triangle 객체를 만들어주세요
			// 100,100		200,200		200,100
			
			Point[] a = new Point[3];
			a[0] = new Point(100,100);
			a[1] = new Point(200,200);
			a[2] = new Point(200,100);
			
			Triangle t = new Triangle(a);	//여기서 a는 a의 주소
			
			//4. g.drawLine() 3개월 이용하여 삼각형을 그려주세요
			g.drawLine(a[0].x, a[0].y, a[1].x, a[1].y);
			g.drawLine(a[1].x, a[1].y, a[2].x, a[2].y);
			g.drawLine(a[2].x, a[2].y, a[0].x, a[0].y);
		}
	}

/**
 * 점을 관리하기 위한 클래스
 * @author PC-NEW05
 * @since 2020.08.24
 */
class Point{
	
	int x;	// 점의 x 좌표
	int y;	// 점의 y 좌표
	
	Point(int x, int y){
		this.x = x;	
		this.y = y;
	}
}

class Circle{
	//1. 반지름(정수)을 저장할 수 있는 변수 r을 선언해주세요.
	int r;
	//2. 점하나를 저장할 수 있는 변수 center를 선언해주세요
	Point center;
	//3. 매개변수가 두 개인 생성자를 이용하여 r과 center를 초기화해 주세요
	Circle(int r, Point center){
		this.r = r;
		this.center = center;
	}
	
	//4. 기본 생성자를 만들어주세요. 단, 매개변수가 두 개인 생성자를 호출하여 좌표는 100, 100 반지름은 50으로 초기화해주세요
	Circle(){
		this(50,new Point(100,100));
	}
}


class Triangle{
	//1. 점 3개를 저장할 수 있는 변수 p를 선언해주세요
	Point[] p;
	
	//2. 매개변수가 하나인 생성자를 만들어주세요
	Triangle(Point[] p){
		this.p = p;
	}
	
	//3. 매개변수가 3개인 생성자를 만들어주세요
	Triangle(Point a, Point b, Point c){
		p = new Point[3];
		p[0] = a;
		p[1] = b;
		p[2] = c;
	}
}

결과물

Comments