FloatPoint eSetCenter(long time) { static FloatPoint a(p.d1,0,0),c(0,0,0); matrix rot; if(p.mode>1) { rot=matrix(p.rotspeed2,FloatPoint(cos(((double)time)/40.)*5,cos(((double)time)/124.)*5,cos(((double)time)/231.)*5)); for(int i=0;i<numCenters;i++) { rot.ApplyMatrix (Centers[i],c); } } else { // srand(time/100); rot=matrix(p.rotspeed2,FloatPoint(cos(((double)time)/40.)*5,cos(((double)time)/124.)*5,cos(((double)time)/231.)*5)); rot.ApplyMatrix (a,c); FloatPoint dist=a; float d=(float)dist.length(); float d0=p.d1; FloatPoint vectunite=(dist / d); float f=-1*(d-d0); vectunite = vectunite* f; a+= vectunite ; } return a;//FloatPoint(200+(rand()%(width-200)),200+(rand()%(height-200)),0) }
void Tourne(short i) { rot.ApplyMatrix (pts[i],Center); }