PROGRAMMING WORKSHOP

.NetFrameWork | 챠트를 그려보자

도형을 처리하기 위하여 Graphics개체를 사용하였었고
선을 그리기 위하여 Pen 개체를 사용하였었고
바탕색을 그리기 위하여 Brush개체를 사용하였었고
사각형, 원들을 그리기 위하여 Graphics개체를 사용하여 Rectangle개체를
만들었었고..
문자에 대한 서식을 위하여 Font개체도 사용하였었고
이제 조금 응용을 해보면..
챠트를 그려보면 좋을 것이다
챠트가 별 건가??? 주어진 값들을 비교하여 크기가 다른
도형을 그려주면 되는 것
위에서 얻은 개체들과 엑셀VBA에서의 프로그래밍감각이면 되는 것이다

아래의 그림과 같이 그려 본다



챠트를 표현하는 외부라이브러리들을 지원받을 수 있는 것이니..
별로 유용하지는 않지만 .NetFrameWork에서 지원하는 다양한
개체들을 살펴보고, .NetFrameWork와 친해지기 위한 이야기들이다

눈금을 그리기 위하여 선을 그려야 하고
막대를 표현하기 위하여 사각형을 그려야 하고
막대의 그림자를 표현하기 위하여 역시 사각형을 그려야 할 것이고..
아...이제 각눈금에 문자를 표현해주어야 하는 구나
이것은 엑셀 챠트의 TickLabels개체와 같은 것인데..
윈도우에서 챠트를 그리기 위한 개체는 없다
위에서 열거한 기본도구들을 사용하여 조립을 하면 되는것이다

앞에서 사용하지 않았던 새로운 것은 문자를 쓰는 방법이다
어떤개체에서 문자를 쓸 수 있게 해 주나??
텍스트상자나 라벨같은 것에는 그냥 Text속성에 주면 되지만
그림 속에 문자를 잡아 넣어야 하는 것이다

역시 Graphics개체가 갖고 있는 메소드를 사용하면 된다 아래와 같이 Form의 Paint이벤트프로시져에 작성하고 폼을 열어보면

Private Sub Form1_Paint(ByVal sender As Object, _
				 ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim oGraphics As Graphics = e.Graphics
oGraphics.DrawString("EXCEL IS PERFECT" & vbNewLine & _
                     "EXCEL IS EXCELLENT", _
                     New Font("tahoma", 24, FontStyle.Bold), _
                     New SolidBrush(Color.Red), 10, 10)
End Sub

아래의 그림과 같이 폼에 그림으로 그려지게 되는 것이다



Graphics개체가 갖고 있는 DrawString메소드에 매개변수로
쓰고 싶은 문자열 정보,
Font개체
Brush개체
문자를 써야할 시작점의 X,Y값

막대챠트가 그려질때 막대의 색상에 맞게 막대의 그림자를 만들때
색상이 막대색상과 같으면서 좀 투명하게 하여주면 자연스러울 것이다
아래와 같이 Color개체의 FromArgb()라는 메소드가 편리하다
RGB앞의 A는 Alpha의 약자로서 RGB에 투명도를 부여하는 색상을
만들어 준다

New SolidBrush(Color.FromArgb(120, Color.Red)

위와 같은 기본으로 사용되는 개체를 어떻게 잘 조합하면
챠트가 그려지는지 첨부화일을 보시기 바란다

***[LOG-IN]***