ROOT 가이드

그림판 클래스 TCanvas

앞서 그림판 클래스인 TCanvas에 대해서 언급한적이 있다. TCanvas는 기본적으로 히스토그램, 그래프, 함수 및 여러 그림 들을 조합하여 그릴 수 있는 그림판이다. 가장 많이 사용하는 기능은 그림판의 크기 및 여백 조절, 그리고 그림 저장 기능등이 있다.

기본 constructor는 다음과 같다.

TCanvas (const char *name, const char *title, Int_t ww, Int_t wh)

첫번째 변수인 이름은 유니크 해야 하며 다른 그림판과 이름이 겹치면 이전 그림판의 정보가 없어진다. 타이틀은 그림판에 대한 간략한 설명으로 생각하자. 이어서 들어가는 변수는 그림판의 가로, 세로 크기이며 단위는 픽셀이다.

TCanvas *cvs = new TCanvas("cvs1","canvas title",800,650);

TObject 파생 클래스 중에서 2차원 그림 그리기를 지원하는 클래스의 Draw() 함수를 부르면 가장 마지막에 생성한 그림판에 그림이 그려진다. 하지만 미리 생성해 둔 그림판이 있다면 TCanvas의 cd() 함수를 사용한 후에 그림을 그리면 해당 그림판에 그림을 그린다.

cvs -> cd();
histogram -> Draw();

그림판을 저장하고 싶을 때는 TCanvas의 SaveAs([파일 이름]) 함수를 이용하면 된다. TCanvas는 저장할 수 있는 포맷의 종류가 상당히 다양한데 알아두면 좋으므로 나열해 보겠다. 파일의 포맷은 파일 이름의 확장자를 인식하여 결정한다. 참고: TPad::SaveAs(...)

  • .ps (기본)
  • .eps
  • .pdf
  • .svg
  • .tex
  • .gif
  • .gif+[번호] : 애니메이션 gif 생성
  • .xpm
  • .png
  • .jpg
  • .C
  • .root
  • .xml

이중에서 '.C'와 '.root'는 코드와 루트파일을 생성하므로 사실상 데이터를 저장하는 것이다. 만약에 그림이 나중에 스타일을 고쳐서 다시 그려야 할 수도 있는 그림이라면 이 형식으로 저장해 두거나 아예 ROOT 파일안에 저장해 두면 매우 유용하다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
ejungwoo
현재 버전
선택 버전
graphittie 자세히 보기