개요 | |
ChartDirector 는 개발중 프로그램에서 챠트기능을 구현할 수 있게 해주는 컴포넌트이며 거의 모든 언어 지원된다. 지원언어 : C++, .net, ASP/COM/VB, JSP/Java, ColdFusion, PHP, Perl, Python, Ruby. 그릴수 있는 챠트종류 : Pie,XY,3D Surface, 3D Scatter, Polar/Radar, Pyramids/Cones/Funnels, Meter/Gauage. Chart Director는 각 언어별로 배포파일이 따로 제공되고 있다. 자유롭게 다운로드 받을 수 있고, 기간/기능 제한 없음. ChartDirector 도입한 응용프로그램이 상용인 경우 라이센스 구입해야함. 본 글에서 아래 3개 내용 정리된다. 1. C++ 용 Chart Director (DLL 형식임)의 설치(다운로드하여 압축푸는게 전부임). 2. ChartDirector DLL 을 우리 프로젝트에서 활용하기 위한 implicit linking처리, ChartDirector 에서 제공하는 클래스 CChartViewer 를 프로젝트에 포함하는 처리. 3. 우리 프로젝트에 Picture Control 추가하고 이를 CChartViewer 타입의 멤버변수 만들어 두기. ChartDirector 는 내부적으로 이미지 형식으로 챠트를 만들어낸다. 이를 표현할 수단으로 Picture Control 을 이용하는것. 4. 챠트 코딩하는 전체 흐름.
챠트예시.-3D 챠트. 챠트예시. - 금융챠팅. Chart Director 제조사 : http://www.advsofteng.com/ 기타. ChartDirector 의 시간표현 자료형의 시간 최소단위는 년월일시분초까지이며, 초 이하 표현안됨. | |
|
1. Chart Director for C++ 설치하기(DLL파일,도움말,예제 다운로드 받기). | |
C++용으로 배포되는 ChartDirector 는 DLL 형식이어서 별도의 설치설과정이 요구되지 않고, DLL 파일들을 개발중 프로젝트 폴더로 복사해서 사용한다. 배포파일중에는 DLL 파일 외에도 도움말, 예제코드들이 잔뜩 들어있다. 1. 압축파일다운로드. 입수처 : 제조사 다운로드 사이트 -> http://www.advsofteng.com/download.html 위 사이트에서 언어별로 배포패키지들이 제공되고 있고, 이중에서 C++ 용은 타이틀 ChartDirector for C++ 에 있는 것이다. 아래그림. 32비트용, 64비트용이 따로 배포된다. 자신이 개발하는 중의 프로젝트의 비트수와 동일한것으로 다운로드 한다. 현재(2016년 1월) 버전 6.0임. 2. 압축파일 풀기. - 설치끝. 주의사항 : 다운로드 받은 압축파일 풀기전에 차단해제 처리부터 해야한다. 차단해제 방법 보기 -> http://igotit.tistory.com/552 3. 폴더 둘러보기. 압축해제 한 폴더를보면 아래 처럼 붉박 부분이 ChartDirector 의 전체 폴더 들이고, 이 중에서 개발중에 사용할 것은 lib 와 include 에 있는 파일이 전부이다. 나머지는 도움말과 예제 파일들이다. d아래 lib 폴더 속에 있는 chartdir60.dll 과 lib 파일이 있고, inlcude 속에 dll 에서의 함수 정의등이 있는 헤더파일들이 있다(아래 아래 그림.). 4. 개발위한 도움말보기. 폴더중에 doc 속에 도움말 cppchartdir.chm 파일이 있으며, 이를 열어보면 설명이 상세하게 잘되어있다. | |
|
2. ChartDirector DLL 활용할 프로젝트 설정. | ||||||||||
ChartDirector for C++ 을 우리 프로젝트에서 활용하기 위한 설정사항 정리. 기초정보 : DLL 활용법. ChartDirector for C++ 은 DLL 형식이므로 개발중 프로젝트에서 이를 포함시켜 사용하기 위한 기본 설정은 일반적인 DLL 과 동일하다. 1. VC++에서 DLL 활용하는법 개요.. http://igotit.tistory.com/471 2. VC++ 에서 DLL 활용하는법. 예. http://igotit.tistory.com/483 1. DLL 관련 파일배치. 위 기초정보에서의 설명처럼 ChartDirector for C++ 의 파일들을 아래 처럼 배치해둔다.
2. ChartDirector 에서 제공하는 클래스 CChartViewer 프로젝트에 포함시키기. ChartDirector 는 챠트를 모두 이미지로 생성하고 있고, 이를 MFC에서 표현하기 위하여 Picture Control 을 활용한다. Picture Control 을 핸들링 하기 편리한 클래스 CChartViewer 를 제공해주고 있다. 이 클래스를 우리 프로젝트에 포함시키자. 2.1 CChartViewer 클래스 파일 2개 프로젝트 소스 폴더로 복사. 다운로드 받은 ChartDirect 폴더 ..\mfcdemo\mfcdemo\ 에 있는 ChartViewer.cpp, ChartViewer.h 파일을 우리 프로젝트의 소스 폴더에 복사해온다. 2.2 우리 프로젝트에서 상기2.1의 2개의 파일 추가한다. 3. 프로젝트에서 ChartDirector DLL implicit linking 처리. 아래 구문의 #pragma comment .. 가 implicit linking 처리되는 것. 헤더파일은 #pragma.. 와 동일 장소일 필요없고 클래스 CChartViewer 를 활용하는 곳에서 포함한다.
| ||||||||||
|
3. 프로젝트에 Picture Control 배치 | |
ChartDirector 는 Picutre Control 을 이용하여 챠트를 표현하게 되므로 우리 프로젝트에서 이를 포함시키고 앞의 설정에서 추가시켜둔 클래스 CChartViewer 와 연결시키는 처리 해줘야 한다. 1. Picture Control 배치. - 개발중 VC++ 프로젝트의 도구상자에서 Picture Control 배치한다(아래그림) 위 배치된 상태에서 Picture Control 설정에서 Type 을 Bitmap 으로 선택한다. 2. Picture Control 설정 배치된 Picture Control 우마우스클릭하여 변수추가 클릭한다(아래 그림). 변수설정창에서(아래 그림), 변수형식을 CChartViewer 로하고 변수이름 기록한다. 요약 : 우리 프로젝트에서 ChartDirector 에서 생성된 챠트를 Picture Control (클래스 CChartView 타입의 "m_ChartViewer" 로 접근가능한) 에 표현 할 수 있는 상태까지 달성함. | |
|
챠트 코딩 전체흐름. | |
ChartDirector DLL 이용하여 챠트 표현하는 코딩 전체 흐름. 1. 챠트 개체 생성한다. 예: XYChart * c = new XYChart(200,200); //초기화 전달값은 픽셀단위의 챠트크기임. 2. 상기1의 챠트개체에 plotarea 설정한다. 예; c->setPlotArea(20,20,180,180); // 20,20시작좌표, 180,180 width,height 3. 챠트개체에 데이터를 전달하여 그린다. 예; c->addLineLayer(DoubleArray(data,size of data)); 4. 그려진 챠트를 표현한다. m_ChartViewer.setChart(c); // Picture Control 에 이미지 표현된다. | |
|
상세 활용정보. - ChartDirector 데이터 표현시 X축. | |
1. 챠트에 표현되는 각 데이터 포인터의 x 값은 지정하지 않아도 된다. - x값을 지정하지 않은 경우 Y값 배열의 인덱스(0,1,2,3,...) 가 X값으로 처리되고 데이터 표현시 x 축으로는 동일한 간격을 가진것으로 표현된다. 2. 챠트에 표현된 데이터 포인트들의 x축 값을 지정하기 위해서는 Layer.setXData 혹은 Layer.setXData2 함수를 이용하여 지정한다. - x값을 지정하는 경우엔 Axis.setLabels , Axis.setLabes2 함수는 사용하면 안된다. 3. X축 스케일 설정은 Axis.serLinearScale, Axis.setLogScale, Axis.setDataScale 함수를 이용하여 설정가능하다. Layer.setXData void setXData(DoubleArray xData); - 챠트 Layer 에 지정된 Y값 배열의 인덱스에 대응하는 x값 지정하는것. - 1개의 Layer 당 1개의 x 값 배열만 지정가능. 1개의 Layer 에 여러 개의 Y dataset이 있는 경우, 모든 Y dataset 은 지정된 1개의 x값 배열이 대응됨. 다른 X 값들이 지정되어야 한다면 Layer 를 추가하고 추가된 Layer 에 Y dataset 과 X dataset을 별도로 지정해야한다. | |
|
ChartDirector 마우스이벤트 핸들링. | |
forum | |
본 글이 포함된 상위 정리 장소.
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
|
///553.
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
C++ std::thread 클래스 이용한 스레드. 클래스멤버함수를 스레드로 실행시키는 방법. (0) | 2016.01.16 |
---|---|
MFC 프로그래스 컨트롤 사용하기. (0) | 2016.01.16 |
Chart Director for C++ 개요, 설치. 설정. (0) | 2016.01.15 |
MFC 체크박스 사용하기. (0) | 2016.01.15 |
Thread Safety (스레드 안전) Interlocked. 함수들. (0) | 2016.01.12 |
Thread Local Storage(스레드 로컬 스토리지) (0) | 2016.01.12 |
댓글을 달아 주세요