C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[75944] Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다.
김시환 [godson2] 1264 읽음    2020-08-10 09:48
제가 예전에 개발했던 프로그램이 화면에 선,원, 사각형등을 그리는 것이 있었는데 그때 제 경우에는 TImage 컴포넌트의 Canvas에 그냥 그려도 그다지 속도에 문제는 없었습니다.

선의 경우 마우스를 버튼을 누른 상태에서 움직이면 처음 누른 점에서 마우스 이동에 따라 선의 위치가 변하다가 버튼을 놓는 순간 선이
확정되고 사각형이나 원도 동일하게 화면상에 마우스 움직임에 따라 크기가 변하다가 버튼을 놓으면 확정되는 그러한 형태였습니다.

Image2->Canvas->MoveTo(tempx1, abs(y_pos-Image1->Height)) ;
Image2->Canvas->LineTo(m_x[0], abs(m_y[0]-Image1->Height)) ;

하지만 픽셀단위의 컬러값을 조정하는 방식으로 범위가 큰 영역을 변경할 경우 더블버퍼링 방식으로 처리하셔야 속도가 나옵니다.
그렇지 않으면 상당히 느려집니다.

인터넷에 더블버퍼링을 찾아 보시면 잘 나와있을 텐데요..

기본적으로 Backbuffer 를 아래 처럼 생생해 주시고

Graphics::TBitmap *BackBuffer = new Graphics::TBitmap();
BackBuffer->Width  = WAFER_WIDTH ;
BackBuffer->Height = WAFER_HEIGHT ;

BackBuffer 에 원하는 형태로 그림을 그리고

Image1->Picture->Bitmap->Assign(BackBuffer) ;  
형식으로 처리하시면 빠르게 처리가 됩니다.

Assign(BackBuffer) ;   <-- BitBlt 와 동일한 역할을 하는데 BitBlt의 경우 크기와 위치를 설정할 수 있는 반면에 Assign은 전체영역을 다 뒤집어 엎어 버립니다.




궁금이... 님이 쓰신 글 :
: 안녕하세요
: 제가 화면에 여러가지 그림을 그리는데요
: 선, 원, 사각형 등을 그리는데
: 매끄럽지 않네요
: 찾아보니깐
: Graphics32를 사용하면 속도 및 기능이 좋다는데요
: 찾아보니 선을 그리기 위해서
: TBitmap32* bm = new TBitmap32();
:     bm->MoveTo(0,0);
:     bm->LineToS(10, 100);
: 하고
:
: 나중에 TCanvas에 BitBlt로 다시 bm을 그리던데
: 맞나요 이럼 어차피 TCanvas에 그리는거라 속도가 빨라질까요?
: 그리고 TBitmap32는 별도의 원 및 사각형을 그리는 함수가 없는데 어떻게 그리나요?
: 그리고 또 한가지는 안티알리안싱인데 이걸 어떻게 설정하나요?
: 궁금합니다.
: 고수님들 도움 부탁드립니다.

+ -

관련 글 리스트
75934 답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 궁금이... 1297 2020/08/03
75994     Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 김상면 934 2020/12/20
75993     Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 김상면 900 2020/12/20
75992     Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 김상면 892 2020/12/20
75944     Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 김시환 1264 2020/08/10
75945         Re:Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 1243 2020/08/10
75995             Re:Re:Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 김상면 1029 2020/12/20
75942     Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 1172 2020/08/08
75943         Re:Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 궁금이... 1211 2020/08/09
75998             Re:Re:Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 932 2020/12/26
75997             Re:Re:Re:답변이 없으셔셔 다시 올립니다. 고수님들 부탁 드립니다. 941 2020/12/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.