달력

52025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

실전 Applet 차트 만들기!!!
--------------------------------------------------------------------------------------------------------
Graphics

clearRect(시작점x,시작점y,폭,높이);사각형으로 지운다..

drawArc(시작점x,시작점y,폭,높이,시작각도,끝나는각도);호를 그린다

drawImage(이미지,이미지시작x,이미지시작y,이미지표시되는프레임(현재프레임-this),폭,높이);
                                                                                                   toolkit을 통해서 이미지 얻어올것!!

drawLine(시작점x,시작점y,끝x,끝y);일직선으로 선을 긋는다

drawPolygon(x배열,y축배열,int);다각형

drawPolyline();

drawRect(x,y,폭,높이);사각형

drawRoundRect(x,y,폭,높이,각도);둥근사각형

drawString(문자열,x,y);문자열을 그림으로

fillRect...() 속을 채운다!!(getColor,setColor,getFont)로 지정한다.

setXORMode(Color)겹쳐지는부분 색 지정

--------------------------------------------------------------------------------------------------------

1. 차트에서의 pixel 비율로 변환하는 과정

AAA = 최대값-실제값 /(최대값-최소값)

최대값 : 200
최소값 : 100
실제값 : 150
ex) (200 - 150) / 100 = 0.5 (AAA값)

최대값 : 200
최소값 : 100
실제값 : 180
ex) (200 - 180) / 100 = 0.2

최대값 : 200
최소값 : 100
실제값 : 110
ex) (200 - 110) / 100 = 0.9

2. 차트에 그려질 Y축의 값 구하기


0
│                                                   <- 캔버스 윗단
│-----------------------------
│                                            ∧
│                                            │   <- 캔버스 사용 높이
│                                            │
│     o    o                               │
│   o                                       │
│       o                                   │
└──────────---------
300 (y축 pixel 비율)

Applet 높이 : 480
캔버스 사용 높이 : 320 (Applet 높이의 2/3만 실 차트로 사용)
캔버스 윗단 : 80

BBB(y축값)
BBB = (pixel로 변환된 값(AAA) * 캔버스 사용높이)+캔버스의 윗단(캔버스의 한토막= 캔버스 높이 / 6 )


ex) (0.5 * 320)+80 = 240 pixel(캔버스 표시 y축 좌표) 실제값 (150)
ex) (0.2 * 320)+80 = 144 pixel(캔버스 표시 y축 좌표) 실제값 (180)
ex) (0.9 * 320)+80 = 368 pixel(캔버스 표시 y축 좌표) 실제값 (110)


(for문 사용 i=0 부터...)

3. x,y 축 값을 이용하여 그래프 만들기


# 꺽은선 그래프

fillRect 사용 : g.fillRect(x축,y축,width,height);

ex) fillRect(x축(i x 30 + 20-1), y축(240), 3 ,3 );

1. i 값 증가시 x 30 을 x축 간격 조절
2. 기본 20-1 ((i==0)일때) 즉, 19간격에 위에서 구한 y축 좌표값 으로
3. 19,240 좌표에 높,넓이 3의 타원을 그린다.

----------------------------------------------------------------------------------

각 좌표값 잇기!!! (i>0) 클때

drawLine 사용 : g.drawLine(start x축, start y축, end x축, end y축);

즉, g.drawLine(이전좌표 xy, 현좌표 xy)

ex) g.drawline((i-1) x 30 + 20 , 240, i x 30 +20, 144);
 
1. 이전좌표의 (i-1) x 30 +20 은 현 좌표에서 이전좌표의 x축 값을 구하기위함
2. i x 30 +20 은 현 좌표의 x축 을 구함

 
# 막대 그래프


1. 최소값 비교 후 ex) if (Integer.parseInt((String) applet.vtSent.elementAt(i)) == applet.naxismin)

2. 최소값 일 경우

 G.drawLine(i * 30 + 20 - 10, y축 , i * 30 + 20 - 1, y축); // 선하나만 그린다

3. 최소값이 아닐 경우(g.fillRect 사용)
 
 G.fillRect(i * 30 + 20 - 10, nSent, 9, -(nSent - (int) (getSize().height * 5 / 6)));

------->G.fillRect(x축 , y축 , width, height);

 -(y축 - (int) (getSize().height * 5 / 6)) -> y축 좌표값에서 Applet 높이의 5/6을 뺀다
 
ex)

y축 240

Applet 높이 480

-(240-(480*5/6)) ---> -(240 - 400) => -(-160) => 160

 

 

'Applet' 카테고리의 다른 글

JFreeChart (한글 깨짐 현상 해결)  (0) 2010.01.18
APPLET 이란???  (0) 2009.12.29
Posted by 인천총각
|