출처: 데브피아/금명식(kgmoss)
[강좌 - 1] 깔끔한 차트(CHART)가 필요하십니까.
부제 - 차트를 그리기 위한 기본 지식 & 설정사항
(글을 편하게 쓰겠습니다.)
이전 강좌에도 밝혔듯이 차트를 그리기 위해서는 Line메서드 하나만 이용이 된다.
그러므로 Line메서드를 자세히 살펴볼 필요가 있다.
A. 아래는 MSDN의 내용을 그대로 옮긴것이다.
********************************************************************************************************************************************
Line 메서드
개체에 선과 사각형을 그립니다.
구문
object.Line [Step] (x1, y1) [Step] - (x2, y2), [color], [B][F]
Line 메서드 구문은 다음과 같은 개체 식별자 및 구성 요소로 되어 있습니다.
구성 요소 | 설명 |
object | 선택. 적용 대상 목록에 있는 개체로 평가되는 개체식. object를 생략하면 포커스가 있는 Form이 object로 간주됩니다. |
Step | 선택. CurrentX 속성 및 CurrentY 속성에 의해 지정된 현재 그래픽 위치와 관련 있는 시작점 좌표를 지정하는 키워드 |
(x1, y1) | 선택. 선 또는 사각형의 시작점 좌표를 지정하는 Single 값. ScaleMode 속성은 사용되는 측정 단위를 결정합니다. 이를 생략하면 CurrentX 및 CurrentY 속성으로 지정된 위치에서 선을 시작합니다. |
Step | 선택. 선의 시작점과 관련 있는 끝점 좌표를 지정하는 키워드 |
(x2, y2) | 필수. 그릴 선의 끝점 좌표를 지정하는 Single 값 |
color | 선택. 선을 그리는 데 사용되는 RGB 색상을 지정하는 Long 정수 값. 이를 생략하면 ForeColor 속성 설정값이 사용됩니다. RGB 함수 또는 QBColor 함수를 사용하여 색상을 지정할 수 있습니다. |
B | 선택. 이를 포함하는 경우 좌표를 사용하여 그려질 상자가 상자의 반대쪽 모서리를 지정합니다. |
F | 선택. B 옵션을 사용하는 경우 F 옵션은 상자를 그리는 데 사용된 것과 동일한 색상으로 상자를 채우도록 지정합니다. B 옵션을 사용하지 않고 F 옵션을 사용할 수 없습니다. F 옵션을 사용하지 않으면서 B 옵션을 사용하면 현재 FillColor와 FillStyle 값으로 상자를 채웁니다. FillStyle의 기본값은 투명입니다. |
참고
연결된 선을 그리려면 이전 선의 끝점에서 다음 선을 시작해야 합니다.
그릴 선의 너비는 DrawWidth 속성의 설정값에 따라 달라집니다. 또한 배경에 선이나 상자를 그리는 방법은 DrawMode 속성 및 DrawStyle 속성의 설정값에 따라 달라집니다.
Line 메서드를 실행할 때 CurrentX 속성과 CurrentY 속성은 인수에 의해 지정되는 끝점으로 설정됩니다.
With…End With 블록 내에서는 이 메서드를 사용할 수 없습니다.
********************************************************************************************************************************************
자세히도 설명 해 놨다 ^^;
하나씩 살펴 보도록 하자.
1. Line메서드에서 꼭 있어야 하는 인자는 2가지 이다.
object.Line (x1,y1)-(x2,y2)
위의 2 좌표만 지정해 주면 라인은 그려진다.
2. Step
없어도 상관없는 인자이다.
라인을 연속해서 그려야 하기 때문에, '어디에서부터' 라는 의미로 해석하면 된다.
Step을 사용해도 상관없겠지만, 앞으로 진행될 강좌에서는 유일하게 빠지는 인자가 될 것이다.
3. Color
라인의 색을 지정해 준다.
Rgb값을 이용하여 사용할 것이다.
3. B
B인자을 사용하면 (x1,y1)-(x2,y2)에 지정된것의 사각형 모양을 그리게 된다.
4. F
위에 설명이 되어 있듯이 B인자로 만들어진 사각형을 채우는데 사용된다.
- ex
object.Line (x1,y1)-(x2,y2),RGB(255,0,0) == 라인그래프
object.Line (x1,y1)-(x2,y2),RGB(255,0,0),BF == 막대그래프(굉장히 편리하다)
B. PictureBox(이하 pBox)의 설정
1. pBox의 AutoReDraw속성값 = True
pBox가 다시 그려질 필요가 있을때(다른 화면에 가렸다 보이거나, 폼을 이동하거나.. 등등) 메모리에 저장된 이미지를 다시 그린다.
이 속성이 False면 차트가 처음 한번만 잘 나올 것이다~
2. pBox의 ScaleMode = 트윕
트윕단위는, 일반적으로 사용되는 포인트나 픽셀보다 훨씬 작은 값이다.
차트를 정밀히 표현하기 위해 단위를 트윕으로 한다.
C. 직접 선을 그려 보자.
아~. 차트를 그리기 위한 모든것을 다 배웠다.
직접 라인을 몇가지 그려보자.
프로젝트를 하나 열고 위의 값대로 pBox를 설정하고, pBox의 appearance=평면 으로 설정
Button을 하나 만든다.
Private Sub Command1_Click()
Dim blankVlaue As Long
blankVlaue = pBox.ScaleHeight * (5 / 100) '(5 / 100)는 임의로 정한 수치입니다.
pBox.Line (blankVlaue, blankVlaue)-(pBox.ScaleWidth - blankVlaue, pBox.ScaleHeight - blankVlaue), RGB(187, 187, 187), B '보조선출력
pBox.Line (blankVlaue, blankVlaue)-(pBox.ScaleWidth - blankVlaue, pBox.ScaleHeight - blankVlaue), RGB(255, 0, 0) '라인출력
End Sub
blankVlaue는 그래프가 pBox의 전체를 차지하게 되면 모양이 좋지 않으므로, 임의적으로 어느정도 여유 공간을 두는것을 말한다.
첫번째 라인에서 B 옵션을 사용하여 보조선을 그렸다.
아주 간단히 차트의 기본적이 틀이 완성되었다.
이제 남은것은 Loop문을 사용하여 내가 원하는 값들을 라인으로 그리기만 하면 되는것이다.
----------------------------------------------------------------
다음 강좌에는 직접 라인 그래프를 그리는 강좌가 이어집니다.