|
원래 화면에다 그림을 그리면... 느립니다.
그래서 CompatiableDC등을 생성해서.. 메모리에서 그린후 화면으로 복사하는 작업들을
이용합니다.
더구나 TCanvas는 편리하긴 하지만.. 느린편이라고 합니다.
(개인적으론 느리다는 생각은 안들었습니다만...)
어딘가 찾아보시면..TCanvas로 작업하는 강좌도 있을겁니다.
(속도 향상을 위한 팁 같은것들이 있었던걸로 기억납니다만..
볼랜드 포럼서 본 것인지는 확실하지 않군요..
여기 없으면.. 델마당에 있을겁니다. )
속도를 더 높여야 한다면..
graphics32(?) library를 한번 써보세요..
테스트를 위해 잠깐 써봤는데... 훌륭합니다.
이 라이브러리는 아마 자료실에 있을겁니다.
덧붙여서 개인적인 의견입니다만.. 초짜라는 ID는 별로 보기 않좋군요..
초짜 님이 쓰신 글 :
: 화면에다가 마우스를 가지고 그림을 그리려고 합니다.
:
: 폼 바탕에 이미지가 그려져 있지요.. (디자인이 되어 있답니다.)
:
: 그래서 폼의 캔퍼스에다가 그리지 못하고
:
: Image에다가 그림을 그리고 있습니다.
:
: 모니터는 듀얼이구요..
:
: 메인폼과 서브폼이 있습니다. 서브폼에서 그림을 그리지요..
:
: 서브폼(두번째 모니터: 터치 스크린입니다)에서 터치 모니터를 이용하여 그림을 그리면 바로 그려지면서 메인 폼의 한 곳에 그림이 그려지는 아주 간단한 루틴입니다.
:
: 그런데 폼에다가 그릴때는 퍼포먼스가 떨어지지 않는데..
:
: Image에다가 그리니깐 너무 느려집니다.
:
: 마우스 포인트가 따라가지를 못하네요.. -_-a
:
: void __fastcall TForm2::m_pImgDrawMouseMove(TObject *Sender, TShiftState Shift,
: int X, int Y)
: {
: if ( DrawOnOff && EraseOnOff ) {
: x = X + 5;
: y = Y + 5;
: x1 = X / 2;
: y1 = Y / 2;
: m_pImgDraw->Canvas->LineTo(x, y);
: MainForm->m_pImgDraw->Canvas->LineTo(x1, y1);
: }
: else if ( DrawOnOff ) {
: x1 = X / 2;
: y1 = Y / 2;
: m_pImgDraw->Canvas->LineTo(X,Y);
: MainForm->m_pImgDraw->Canvas->LineTo(x1, y1);
: }
: }
:
: 우선 위와 같이 했는데 잘못된 점을 좀 지적해주셨으면 합니다.
:
: 잘못된 점과 개선할 점등이요.. ^^;;
:
: 그럼 좋은 하루 되시길..
|