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
[59224] 감사합니다~
rivers [] 935 읽음    2009-11-25 08:29
잘되네요
사각형은 지오메트릭펜으로 비스무리 하게 만들었는데
이걸로 다시 한번 해봐야겠네요


장성호 님이 쓰신 글 :
: 음...
:
: TCanvas의 Polygon 함수를 이용하면 쉽게 구현이 가능할듯 한데요...
:
: [샘플소스]
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:     this->DoubleBuffered=true;
:     Image1->Canvas->Rectangle(Rect(0,0,Image1->Width,Image1->Height));
: }
: //---------------------------------------------------------------------------
: 
: TPoint stPt1,stPt2;
: int iPBrushWid=3; 
: void __fastcall TForm1::Image1MouseDown(TObject *Sender,
:       TMouseButton Button, TShiftState Shift, int X, int Y)
: {
:     stPt1=Point(X-iPBrushWid,Y-iPBrushWid);
:     stPt2=Point(X+iPBrushWid,Y+iPBrushWid);
: 
:     Image1->Canvas->Pen->Width=1;
:     Image1->Canvas->Brush->Color=clBlack;
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
:       int X, int Y)
: {
:     if(Shift.Contains(ssLeft))
:     {
:         TPoint cuPt1,cuPt2,cuPt3,cuPt4;
:         cuPt1=Point(X-iPBrushWid,Y-iPBrushWid);
:         cuPt2=Point(X+iPBrushWid,Y+iPBrushWid);
: 
:         TPoint p[5]={stPt1,stPt2,cuPt2,cuPt1,stPt1};
:         Image1->Canvas->Polygon(&p[0],4);
:         stPt1=cuPt1;
:         stPt2=cuPt2;
:     }
: }
: 

:
: 위와같이 하면 왼쪽 위에서  오른쪽 아래로 빗금의 펜브러쉬가 구현됩니다.
:
: [Size]
: iPBrushWid 값을 조정하면 크기가 조정되구
:
: [방향]
:    cuPt1 ,cuPt2를 구할때
:     y값에 +/- iPBrushWid의 방향을 바꿔버리면 빗금의 방향이 바뀌어 버릴것입니다.
:
: [사각형 Pen브러쉬]
:    사각형이 좀 문제이긴 한데..
:    위 방식을 응용하면 쉽게 구현 가능합니다.
:
: 그럼..
:
:
: rivers 님이 쓰신 글 :
: : 윈도우즈 그림판 브러시를 보면 사각형과, 점,
: : 대각선으로 브러시 모양을 선택할 수 있습니다.
: : 점이야  펜의 굵기를 늘리면 사용할 수 있지만
: : 사각형이나 대각선은 어떤식으로 구현해야 할지
: : 감을 못잡겠습니다.
: : 사각형의 브러시 모양을 만들어 보려고 마우스가 움직일때마다
: : 좌표를 따와서 일정크기의 사각형을 계속 그려줬는데
: : 마우스를 빠르게 움직이면 선이 되는게 아니라
: : 드문드문 사각형이 나오는 형태로 되더군요.
: :
: : 이것을 구현한 예제파일이 있으시면 부탁드립니다.

+ -

관련 글 리스트
59214 그림판의 브러시구현 rivers 1117 2009/11/24
59218     Re:그림판의 브러시구현 장성호 1703 2009/11/24
59224         감사합니다~ rivers 935 2009/11/25
59229             Re:감사합니다~ 장성호 979 2009/11/25
59215     Re:그림판의 브러시구현 Nibble 1185 2009/11/24
59217         Re:Re:그림판의 브러시구현 rivers 1298 2009/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.