Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

движение

63K
24 ноября 2010 года
Lulik
7 / / 15.11.2010
У меня есть проект, в котором несколько файлов.
В файлах описывается различные геометрические фигуры с разными параметрами.


Сначала надо было организовать просто движение любого из классов.


Код:
void FigureMove(GeomFigure* pFig,int dx,int dy, int dtime, int count);
int main(void)
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, PATCHTODRIVER);
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

int maxx, maxy; maxx = getmaxx(); maxy = getmaxy();
int x0,y0; x0= maxx/2; y0=maxy/2;
Circle A1(50,300,240); A1.Draw();
ColorRect S1(30,50,150,100,2,3,4,5); S1.Draw(); getch();
ColorRect S2(0,360,200,100,BLUE,GREEN,RED,BROWN,YELLOW); S2.Draw();

FigureMove(&A1,15,5,750,12);

FigureMove(&S1,5, -3, 150, 20);
 getch();

closegraph();
return 0;


}

void FigureMove(GeomFigure* pFig,int dx,int dy, int dtime, int count)
{
    for(int i=1; i<=count; i++)
    {
    pFig->Draw();
    delay(dtime);               //    getch();
    pFig->Hide();
    pFig->Shift(dx,dy);

    }
 }


А теперь надо сделать движение по кругу. Причём класс ColorRect должен двигатся по классу Circle.


с этим возникли большие проблемы.



Код:
void FigureMovebyCircle(GeomFigure* pFig, int dtime,int x0,int y0,int Radius)
{

 Circle (320,240,50).Draw(); getch();
 setcolor(4);

const float PI=3.1416;
int Width; int Height;
int x1=x0-Radius*6;
int x2=Width/2;
int y2=Height/2;
int y1=y0-Radius*6;
pFig->Shift(x1,y1);
pFig->Draw();

for (double  f=0; f<=2*M_PI; f=f+PI/14)

 {
          double df=f*Radius;

double dx=Radius*cos(f);
double dy=Radius*sin(f);
pFig->Draw();
delay(dtime);
pFig->Shift (dx,dy);

 }

   }



причём переменные x0 и y0 надо брать из класса Colorrect, но не получаеться сделать указатель.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог