잘되네요
사각형은 지오메트릭펜으로 비스무리 하게 만들었는데
이걸로 다시 한번 해봐야겠네요
장성호 님이 쓰신 글 :
: 음...
:
: 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 님이 쓰신 글 :
: : 윈도우즈 그림판 브러시를 보면 사각형과, 점,
: : 대각선으로 브러시 모양을 선택할 수 있습니다.
: : 점이야 펜의 굵기를 늘리면 사용할 수 있지만
: : 사각형이나 대각선은 어떤식으로 구현해야 할지
: : 감을 못잡겠습니다.
: : 사각형의 브러시 모양을 만들어 보려고 마우스가 움직일때마다
: : 좌표를 따와서 일정크기의 사각형을 계속 그려줬는데
: : 마우스를 빠르게 움직이면 선이 되는게 아니라
: : 드문드문 사각형이 나오는 형태로 되더군요.
: :
: : 이것을 구현한 예제파일이 있으시면 부탁드립니다.