Форум программистов, компьютерный форум CyberForum.ru

движение по кругу - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Люлик
0 / 0 / 0
Регистрация: 18.12.2009
Сообщений: 2
24.11.2010, 02:33     движение по кругу #1
У меня есть проект, в котором несколько файлов.
В файлах описывается различные геометрические фигуры с разными параметрами.


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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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.


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



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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, но не получаеться сделать указатель.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 02:33     движение по кругу
Посмотрите здесь:

расположение разноцветных шашек по кругу C++
заполнить массив по кругу C++
C++ движение пирамиды по кругу
Точки принадлежащие кругу C++
C++ цикл по кругу
C++ Принадлежит ли точка кругу
C++ Определить месторасположение точки по отношению к кругу
Где допущена ошибка? :( Движение фигуры по кругу C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru