|
유영인 Cuperido 님이 쓰신 글 :
: XY라는 스트럭쳐를 생성하시는것 보다 TPoint 기본 스트럭쳐를 사용하셔서
: 하시는 것이 도움이 되실것 같습니다.
:
: 아래 처럼 TPoint 4개 배열을 만들어 주고...
: 좌표 설정을 해준다음, PolyBezier 로 돌리시면 됩니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:
: #define MAX_POINT 4
:
: TPoint tpPosition[MAX_POINT];
:
: tpPosition[0].x = 0;
: tpPosition[0].y = 0;
:
: .....
:
: Image1->Canvas->PolyBezier(&tpPosition[0], MAX_POINT);
:
: }
:
:
: mitcu 님이 쓰신 글 :
: : 얼마전에도 비슷한 글로 올렸었는데...인터넷 참조도 하고 도움말을 찾아 좀 만들어 보았습니다. 스트럭처와 포인트를 이용해서 그림1 같이 하려 하는데요...조정점이 4개인 베지어 곡선이란것이 점이 4개인 곡선 아닌지요..암튼 밑에 에러가 나는 부분을 수정하려면 어떤방식으로 해결해야 하는 지 궁금합니다. 베지어 관련 책만 며칠째 보고 함 짜보는것인데...어설프군요..^^;
: : 여하튼 질책도 좋으니 예리한 조언 부탁드리겠습니다.
: : 날씨도 더운 데 애쓰시구요
: : 행복한 하루 보내세요...^^;
: :
: : //---------------------------------------------------------------------------
: :
: :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: :
: : struct XY{
: : double x,y;};
: : double a= Edit1->Text.ToDouble();
: : double b= Edit2->Text.ToDouble();
: : double c= Edit3->Text.ToDouble();
: : double d= Edit4->Text.ToDouble();
: : double e= Edit5->Text.ToDouble();
: : double f= Edit6->Text.ToDouble();
: : double g= Edit7->Text.ToDouble();
: : double h= Edit8->Text.ToDouble();
: :
: : double p1[]={a,b};
: : double p2[]={c,d};
: : double p3[]={e,f};
: : double p4[]={g,h};
: :
: :
: :
: :
: : class XY Bezier4( XY p1,XY p2,XY p3,XY p4,double mu ) ;
: :
: :
: : {
: : double mum1,mum12,mu2;
: : XY p;
: : char *mu;
: : mum1= 1- *mu;
: : char mum13;
: : mum13 = mum1*mum1*mum1;
: : char mu3;
: : mu3= *mu**mu**mu;
: :
: :
: : p.x = mum13*a + 3**mu*mum1*mum1*c + 3**mu**mu*mum1*e + mu3*f;
: : p.y = mum13*b + 3**mu*mum1*mum1*d + 3**mu**mu*mum1*f + mu3*g;
: :
: :
: :
: :
: : Image1->Canvas->PolyBezier(XY p,2); (*errror message here*)
: : } ;
: :
: : }
|