Java의 묘화방법과 색상

[ Last update:   March 8, 2003. ]

1. 직선 및 원을 그리기 위한 각종 방법

원 및 장방형등의 작도방법에는 다음 표와 같은 빙법들이 있으며, java.awt 패키지에 포함된 Graphics class의 함수군들이다.

도형메소드인수의 형
문자drawString( str, x, y)

 문자를 둘러싸는 장방형의 좌하 좌표를 ( x, y ) 로, 문자열 str 를 묘화.

str 은 String,

x, y 는 int

직선drawLine( x1, y1, x2, y2)

픽셀 좌표 ( x1, y1 ) 에서 ( x2, y2 ) 으로 직선을 그린다.

x1, y1, x2, y2은 int
장방형drawRect( x, y, width, height) ←선으로 묘화

fillRect( x, y, width, height ) ← 장방형 영역을 채워서

clearRect( x, y, width, height ) ←배경색으로 채움

장방형의 좌상 모퉁이 좌표를 ( x, y ), 폭과 높이를 width, height 로 하는 장방형

x, y, width, height 는 int
타원

( 원 )

drawOval( x, y, width, height ) ← 선으로만

fillOval( x, y, width, height ) ← 채워서

타원을 둘러싸는 장방형의 좌상 모퉁이 좌표를 ( x, y ), 폭과 높이를 width, height 로 하는 타원

전부 int
원호drawArc( int x, int y, int width, int height, int startAngle, int arcAngle ) ←원호

fillArc( int x, int y, int width, int height, int startAngle, int arcAngle ) ←채우기

그리는 원호를 둘러싸는 장방형의 좌상각 좌표를 ( x, y ), 장방형의 폭과 높이를 width, height, 원호를 그리기 시작하는 각도 ( 도 ) 를 startAngle, 원호의 각도 ( 도 ) 를 arcAngle 로 하는 원호

모든 인수가 int
다각형drawPolygon( xPoint[ ], yPoint[ ], nPoint ) ←선으로만

fillPolygon( xPoint[ ], yPoint[ ], nPoint ) ← 다각형 내부를 채워서

xPoint, yPoint 는 다각형의 꼭지점의 x, y 좌표의 배열, nPoint 는 정점의 수로 닫혀진 다각형을 그린다

xPoint, yPoint는 일차원의 int 형 배열, nPoint는 int

2. 표준 색상

표준색상은 Color 클래스의 변수로서 아래 표와 같이 정의되며, 이것을 이용하면 간단하다. 보다 상세한 색상을 지정할려면 RGB 나 HSB 의 수치를 구체적으로지정하면 된다.

Color 클래스의 변수색RGBHSB
 Color.white 白 255, 255, 255 0.0, 0.0, 1.0
 Color.lightGray light gray 192, 192, 192 0.0, 0.0, 0.757
 Color.gray gray 128, 128, 128 0.0, 0.0, 0.505
 Color.darkGray dark gray 64, 64, 64 0.0, 0.0, 0.252
 Color.black black 0, 0, 0 0.0, 0.0, 0.0
 Color.red red 255, 0, 0 0.0, 1.0, 1.0
 Color.pink pink 255, 175, 175 0.0, 0.313, 1.0
 Color.orange orange 255, 200, 0 0.133, 1.0, 1.0
 Color.yellow yellow 255, 255, 0 0.166, 1.0, 1.0
 Color.green green 0, 255, 0 0.333, 1.0, 1.0
 Color.magenta magenta  0, 255, 255 0.833, 1.0, 1.0
 Color.cyan cyan 0, 255, 255 0.5, 1.0, 1.0
 Color.blue blue 0, 0, 255 0.666, 1.0, 1.0

3. RGB 에 의한 색상 지정

RGB ( red, green, blue ) 의 3색에 대해, 각각 0에서 255까지의 정수 ( int 형 ) 으로 색을 지정한다.

 
= 색상 지정 방법 =
g.setColor( Color.red );// Color 클래스의 표준색을 이용할 경우
g.setColor( new Color( 123, 111, 55 ));// RGB로 지정하는 방법
Color myred = Color.red;// 변수 myred 로 지정하고,
g.setColor( myred );//   색을 지정하기도

4. HSB 에 의한 지정

색상, 채도, 명도를 단정도 실수 ( float 형 ) 으로 지정. ( 면의 밝기의 변화를 나타낼 경우 편리).

색상 H (Hue):
 
0 (red) 에서 시작하여 1 미만의 실수로, 값이 증가하는 순으로 황색, 시얀, 창, 마젠타, 적색으로 변화.
채도 S (Saturation):0 에서 1 사이의 값으로, 선명도를 지정. 0에 가까울수록 하얗게 변한다.
명도 B (Brightness):0 에서 1 사이의 값으로, 밝기를 지정. 0 의 경우는 HS 에 관계없이 검게 변한다.

= 지정 방법 =
Color co = Color.getHSBColor( 0.66f, 0.4f, 0.95f );
g.setColor( co );

HSB color 표본은 오른쪽의 Applet를 첨조할 것. ⇒ HSBColor