Week 4 Assignment

 

Problem3

void drawBezier2(void){


float Rad=300; //fixed radius
float MRad=10; //Mov rad
float o= 120; // offset
float Amp=mouseX;
float Amp2=mouseY;
int A;

float Frequency=4;
float Phase=8;
float Phase2=3;
Vec2d P;
Vec2d center(100,200);


for(A = 0; A< numPoints; A++){

P.x = (Rad +MRad)*cos_deg(A)-(MRad +o)* cos_deg(((Rad+MRad)/MRad)*A);
P.y = (Rad +MRad)*sin_deg(A)-(MRad +o)* sin_deg(((Rad+MRad)/MRad)*A);
P.x+= Amp2* sin_deg(A*Frequency+Phase);
P.y+= Amp* sin_deg(A*Frequency+Phase2);
P = P+ center;
Phase2+=0.1;
VectList1 [A]=P;

}


//Vec2d beazA(100,100), beazB(150,400), beazC(400,500), beazD(100,150),beazE, beazF, beazG, beazH, beazI, beazJ ;
glPointSize(3);
glBegin(GL_LINE_STRIP);

for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d M (VectList1[0] *(b*b*b)+ VectList1[1]*(3*p*b*b)+VectList1[2] *(p*p*b)+ VectList1[3] *(p*p*p));

glVertex2f(M.x, M.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d N (VectList1[3] *(b*b*b)+ VectList1[4]*(3*p*b*b)+VectList1[5] *(p*p*b)+ VectList1[6] *(p*p*p));

glVertex2f(N.x, N.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d O (VectList1[6] *(b*b*b)+ VectList1[7]*(3*p*b*b)+VectList1[8] *(p*p*b)+ VectList1[9] *(p*p*p));

glVertex2f(O.x, O.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d O (VectList1[9] *(b*b*b)+ VectList1[10]*(3*p*b*b)+VectList1[11] *(p*p*b)+ VectList1[12] *(p*p*p));

glVertex2f(O.x, O.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d Q (VectList1[12] *(b*b*b)+ VectList1[13]*(3*p*b*b)+VectList1[14] *(p*p*b)+ VectList1[15] *(p*p*p));

glVertex2f(Q.x, Q.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d R(VectList1[15] *(b*b*b)+ VectList1[16]*(3*p*b*b)+VectList1[17] *(p*p*b)+ VectList1[18] *(p*p*p));

glVertex2f(R.x, R.y);

}
for( float p=0; p<=1.0; p+=0.01){
float b=1.0-p;
Vec2d S(VectList1[18] *(b*b*b)+ VectList1[19]*(3*p*b*b)+VectList1[20] *(p*p*b)+ VectList1[0] *(p*p*p));

glVertex2f(S.x, S.y);

}

glEnd();
}