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

Полет по параболе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчет частоты вхождений отдельных букв за время Т http://www.cyberforum.ru/cpp-beginners/thread716363.html
Приветствую тебя, человек/инопланетянин, зашедший в эту тему! У меня есть вопрос именно к тебе, так что не закрывай вкладку. У меня есть вот такое задание: Разработать программу,...
C++ Класс Money, перегрузка арифметических операций для работы с денежным форматом //Ñîçäàéòå êëàññ Money, â êîòîðîì ïåðåãðóçèòå àðèôìåòè÷åñêèå //îïåðàöèè äëÿ ðàáîòû ñ äåíåæíûì ôîðìàòîì. Ïåðåãðóçèòå äâà îïåðàòîðà //ñëåäóþùèì îáðàçîì: //double * Money //óìíîæèòü ÷èñëî íà... http://www.cyberforum.ru/cpp-beginners/thread716346.html
Степень числа C++
Народ нужна небольшая помощь)) Не могу придумать как записать в коде степени икса: x^2,x^3 ,x^6, x^7,x^10, точнее,чтобы это все выглядило в одной формуле Народ помогите записать степень через...
C++ график функции
помогите построить график функции на отрезке (0;4.2]
C++ Создать абстрактный базовый класс список http://www.cyberforum.ru/cpp-beginners/thread716322.html
Создать абстрактный базовый класс список. Реализовать на его базе классы стек и очередь с виртуальными функциями добавления и удаления элементов.
C++ Вычисление матрицы и вектора с типом char. Выводятся символы Функции operationF, operationS возвращают указатели на массив(вектор), двумерный массив(матрицу) соответственно. При подстановке этих указателей в функции coutMatrix, coutVector, выводится матрица... подробнее

Показать сообщение отдельно
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89

Полет по параболе - C++

02.12.2012, 16:06. Просмотров 562. Ответов 0
Метки (Все метки)

Доброго всем времени суток!
Столкнулся с проблемой одной. У меня было задание к лабе, в котором нужно было сделать стрелу, которая летит по параболе и вращается вокруг продольной оси. Все это в досовской графике. Я смог сделать только ее вылет под углом 45 градусов и полет по прямой. Не подскажите как исправить подпрограмму, чтобы она летела по параболе? Бьюсь над этим второй день.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
 
 #include<conio.h>
 #include<graphics.h>
 #include<process.h>
 #include<stdio.h>
 #include<dos.h>
 #include<stdlib.h>
 #include<math.h>
 #define pi 3.14
 
 int a[6][4]={     {0,250,100,1},       //массив с координатами точек 
                   {100,150,100,1},
                   {80,150,100,1},
                   {100,170,100,1}
                   };  
 int midx, midy, midz;
 int dx = 1;
 
 
 void mid(void)
 {
  midx=(a[0][0]+a[1][0])/2;
  midy=(a[0][1]+a[1][1])/2;
  midz=(a[0][2]+a[1][2])/2;
 }
 
    void ctrela(void)
    {
    setcolor(10);
    line(a[1][0], a[1][1], a[0][0], a[0][1]);
    line(a[3][0], a[3][1], a[1][0], a[1][1]);
    line(a[2][0], a[2][1], a[1][0], a[1][1]);
    line(a[2][0], a[2][1], a[3][0], a[3][1]);
    delay(100);
    }
    void parabola(void)
    {
    a[0][0]=a[0][0]+dx; // это изменение координаты по X 
    a[0][1]=a[0][1]-dx; // это изменение координаты по Y, здесь что вписать я не могу понять 
    a[0][2]=a[0][2];
 
    a[1][0]=a[1][0]+dx;
    a[1][1]=a[1][1]-dx;
    a[1][2]=a[1][2];
 
    a[2][0]=a[2][0]+dx;
    a[2][1]=a[2][1]-dx;
    a[2][2]=a[2][2];
 
    a[3][0]=a[3][0]+dx;
    a[3][1]=a[3][1]-dx;
    a[3][2]=a[3][2];
    }
 
 
 main()
{
   int gdriver = VGA, gmode = VGAMED, errorcode;
   int b[6][4],i,j,k;
   float w1;
   initgraph(&gdriver, &gmode, "C:\BC5\BGI" );
   errorcode = graphresult();
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   }
   setviewport(50, 50, getmaxx()-50, getmaxy()-50, 1);
   clearviewport();
  while(1)
 {
        dx=0;
    for(j=0;j<6;j++)
    for(k=0;k<4;k++)
    
    b[j][k]=a[j][k];
   dx=dx+2;
   if(dx>500)
    {
     dx=0;
     for(j=0;j<6;j++)
     for(k=0;k<4;k++)
     a[j][k]=b[j][k];
    }
   mid();
   parabola();
   if(i==0) i=1;
      else i=0;
   setactivepage(i);
   clearviewport();
   ctrela();
   setvisualpage(i);
 }
   getch();
 
   closegraph();
   return 0;
   }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru