|
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*)
: } ;
:
: }
|