Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 11

Графика+классы с++

10.12.2009, 18:11. Показов 2311. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем ребят суть проги такова: реализовать балистическое движение тела под действием сил ньютона(стрельба из пушки), при создании использовать классы.
Не могу сообразить,как сделать так:
1)чтобы например задаешь угол, пушка поворачивает на этот угол, следавательно и меняется траектория движения.
2)задать n-количество шаров, вылетающих из пушки
Жду любые подсказки, а лучше конечно конкретный код, спасибо
Исходный:
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
#include    <conio.h>
#include        <string.h>
#include    <graphics.h>
#include    <stdio.h>
#include        <stdlib.h>
#include        <math.h>
#include        <dos.h>
#include    <iostream.h>
class Vect{
public:
double x, y;
};
//------------
class Newton{
public:
double m,v,a;
Vect Poz;
};
class telo{
    static int n;
    double x,y,ax,ay;
public:
    Vect F;
    Newton M;
    double tt;
    public:
    telo();
    telo(Newton &M, Vect &F, double tt);
    pad();
    pad(Newton &M, Vect &F, double tt);
    ~telo(){};
    };
//------------------
telo :: telo(Newton &M, Vect &F, double tt){
double x,y,ax,ay,vx,vy;
            ax=F.x/M.m;
            ay=F.y/M.m;
            vx+=ax*tt/2;
            vy+=ay*tt/2;
            M.Poz.x+=(vx+ax*tt/2)*tt;
            M.Poz.y+=(vy+ay*tt/2)*tt;
            int c1=getcolor();
    setcolor(1);
    circle(M.Poz.x,M.Poz.y,10);
    setfillstyle(1,1);
    floodfill(M.Poz.x,M.Poz.y,1);
    delay(50);
    setcolor(c1);
}
//--------------------------------
void main(){
randomize();
int t=DETECT,u;
double ax,ay;
int i,j;
int n;
unsigned int size;
cout<<"VVedite n: "<<endl;
cin>>n;
initgraph(&t,&u,"d:");
Vect F;F.x=1.7;F.y=-1.5;Newton M;M.m=5;M.Poz.x=0;M.Poz.y=479;
 
 
 
    //   putpixel(random(640),random(480),random(16));
for(i=1;i<40;i+=1)
 
{
    line(10,460,72,394);
    line(40,475,76,435);
    line(10,455,20,479);
    fillellipse(70,420, 6,26);
    //for(j=0;j<n;j++)
      telo(M,F,i);
       cleardevice();
if((M.Poz.x>=getmaxx()/2+20) && (M.Poz.x<=getmaxx())|| M.Poz.y<=getmaxy()/2-50)  {
    F.x=2;
    F.y=1.5;}
if(M.Poz.x>=getmaxx()/2-45 && M.Poz.x<=getmaxx()/2|| M.Poz.y<=getmaxy()/2-150)  {
    F.x=1.3;
    F.y=0;
 
}
if(kbhit())
exit(1);
}
 
//cleardevice();
 
getchar();
exit(1);
closegraph();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.12.2009, 18:11
Ответы с готовыми решениями:

Графика + классы
Необходимо реализовать позднее связывание. Пока что это у меня не особо получается. Нет, само связывание получилось, но вот проблемы с...

Классы и графика: объяснить работу кода
Поясните код программы плиз: 1) заголовочный файл #ifndef Unit1H #define Unit1H ...

Объекты(классы) и графика в PascalABC.NET
Доброго времени суток!:) Есть такой вопрос: как обычно написанную программу перевести на объекты.Суть программы: велосипед, который едет...

1
 Аватар для Aye Aye
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
19.12.2009, 22:22
наклон пушки:
организовать цикл в котором программа будет запрашивать ввод. Если введено, например 'u' - up то угол увеличиватеся на 0.001 рад,(посколку в цикле, то если пользователь зажмет кнопку угол будет менять в реальном времени), а если 'd' - down угол буедет уменьшаться, если же нажать ктопку ' ', по известному углу можно расчиать траикторию полета.

необходимо написать классы ядлро (кружочек) и пушка (прямоугольничек).

класс ядро должн содержать поля:
центр кружка,
методы:
движение в лево (или вправо, смотря куда летим).
переместить в заданную точку()
показать ядро,
спрятать ядро.

клсс пушка: поля:
угол наклона,
серединные координаты (по мним можно посторить весть прямоугольник),
методы:
поворот вверх (изменится угол),
поворот вниз (изменится угол),
показать пушку
спрятать пушку.

после нажатия ' ' (выстрел), наклон пушки менять должно быть невозможно, и надо проанимировать полет ядра, запустив цикл в котором во время каждо итерациибудет показыться и прятаться ядро (подобие анимации) в соответствии с посчитаными для данной итерации координатами.

а насчет n шаров, просто заставь прогу нестолько раз за пользователя понажимать ' ', с должной задержкой.

вот подсказка:
класс ядро
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
#include<graphics.h>
#include<iostream.h>
#include<conio.h>
#include<dos.h>
 
class Bullet
{
private:
    int x,y;
    int R;
public:
    Bullet(int,int,int);
    int Getx();
           int Gety();
    void Putx(int);
           void Puty(int);
    void PutRx(int);
    void Show();
    void Hide();
    void Move(int);
};
 
Coin::Bullet(int x,int y, int R)
{
    this -> x=x;
    this -> y=y;
    this -> R;
}
 
int Bullet::Getx(){return x;}
int Bullet::Getx(){return y;}
void Bullet::Putx(int x){this -> x=x;}
void Bullet::Puty(int x){this -> y=y;}
void Bullet::PutR(int Rx){this ->R;}
void Bullet::Show()
{
    ellipse(x,y,0,360,R,R);
}
 
void Bullet::Hide()
{
    unsigned TempColor;
    TempColor=getcolor();
    setcolor(getbkcolor());
    Show();
    setcolor(TempColor);
}
void Bullet::Move(int x,int y)
{
    Hide();
           this->x=x;
           this->y=y;
    Show();
}
 
void main()
{
    int gdriver=DETECT, gmode, errcode;
    initgraph(&gdriver, &gmode,"");
    errcode=graphresult();
    if (errcode != grOk)
    {
        cout<<"Graphics error: %s"<<grapherrormsg(errcode)<<endl;
        cout<<"Press any key to halt:"<<endl;
        getch();
    }
         Bullet B(200,200,50);
         B.Show();
         delay(100000);
         B.Move(300,300);
         delay(100000);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2009, 22:22
Помогаю со студенческими работами здесь

Какие компоненты, классы, методы использовать для построения 2D графика функции?
Здравствуйте, подскажите пожалуйста какие компоненты, классы, методы использовать для построения 2D графика функции? И посоветуйте хорошие...

Классы в Delphi + графика. Создание объектов, перемещение, изменение размера, поворот на определенный угол
У меня возникла проблема с этой задачей. Все что у меня получилось - строить фигуры по нажатию кнопки и стирать по нажатию другой. Как...

Определить классы абстрактного выражения и классы для различных типов выражений
помогите Реализовать объектно-ориентированную модель, определяет математическое выражение, представлен в виде дерева. Определить классы...

Работа с файловой системой: классы Directory и Filе и классы DirectoryInfo и FileInfo
Уважаемые форумчане помогите пожалуйста с практической работой. Программным путем: В папке С:\temp создайте папки К1 и К2. В...

Непонятна тема (Классы содержащие другие классы, как данные члены )
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru