0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 30
1

Движение спутника. Движение точки по эллипсу в c++ builder

14.06.2016, 01:45. Показов 1435. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть код программы, который строит движение точки по эллипсу. Для этого использовались только большая полуось 'a' и меньшая полуось 'b'. А нужно изменить программу так, чтобы траектория рассчитывалась через параметры t - период, дельтафи и т.д. Надеюсь на вашу помощь!
Кликните здесь для просмотра всего текста
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
101
102
103
104
105
106
107
108
109
110
111
112
113
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit3.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
double f;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
    : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{   // построеить эллипс
    double a,b;
    double t,e,p,r,ang;
 
    a = StrToFloat(LabeledEdit1->Text);
    b = StrToFloat(LabeledEdit2->Text);
 
    p = ((pow(b,2)) / a);
    e = sqrt(1 - ((pow(b,2)) / (pow(a,2))));
    t = ((sqrt(((pow(a,3)) * 4 * (pow(3.14,2))) / ((5.97 * pow(10.0,24.0)) * (6.67 * pow(10.0,-11.0))))));
    ang = (t) / 360;
    r = (p / (1 - (e * Cos(ang))));
 
    int i = ClientWidth / 2, j = ClientHeight / 2;
 
    for (float l = 0; l <= 2 * M_PI; l += 0.001){
        Canvas->Pixels[i + a * cos(l)][j + b * sin(l)] = clBlack;
    }
 
 
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm3::Button2Click(TObject *Sender)
{
    Form3->Repaint();
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm3::Timer1Timer(TObject *Sender)
{
    double a,b;
    double t;
    double x,y;
    double q;
 
    a = StrToFloat(LabeledEdit1->Text);
    b = StrToFloat(LabeledEdit2->Text);
 
    int i = ClientWidth / 2, j = ClientHeight / 2;
 
    x = i + a * Cos(f);
    y = j + b * Sin(f);
 
    Refresh();
 
    Canvas->Pen->Color = clRed;
    Canvas->Brush->Color = Color;
    Canvas->Ellipse((i - 2*a/3 - 60), (j - 60), (i - 2*a/3 + 60), (j + 60));
 
    Canvas->Pen->Color = clBlue;
    Canvas->Brush->Color = Color;
    Canvas->Ellipse((x - 30), (y - 30), (x + 30), (y + 30));
 
    f = f + 0.01;
 
    for (double l = 0; l <= 2*M_PI; l += 0.001)
        Canvas->Pixels[i + a * cos(l)][j + b * sin(l)] = clBlack;
}
//---------------------------------------------------------------------------
 
 
 
 
 
 
void __fastcall TForm3::FormCreate(TObject *Sender)
{
    Form3->BorderStyle=bsNone;
    Form3->WindowState=wsMaximized;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::Button4Click(TObject *Sender)
{
    Form3->Close();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::Button3Click(TObject *Sender)
{
    Form3->Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm3::Button5Click(TObject *Sender)
{
    Form3->Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2016, 01:45
Ответы с готовыми решениями:

Движение точки по эллипсу с течением времени
Здравствуйте! Подскажите, как заставить двигаться точки по эллипсоидной орбите с течением времени,...

Анимация: движение спутника, движение планет
Составьте программу, которая демонстрирует: а) прямолинейное движение спутника на фоне неба и...

Движение по эллипсу
Здравствуйте! Не получается запустить круг по эллипсу (планету вокруг Солнца). По заданию планет...

Движение по наклонённому эллипсу
Здравствуйте! Есть такая задача: несколько объектов движется по наклонённому эллипсу, при чём для...

1
случайный прохожий
2418 / 1631 / 555
Регистрация: 20.07.2013
Сообщений: 4,579
14.06.2016, 03:00 2
Вырази a и b через эти параметры.
Или используй вариант
Движение спутника. Движение точки по эллипсу в c++ builder
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2016, 03:00
Помогаю со студенческими работами здесь

Движение круга по эллипсу
Всем привет. Нужно нарисовать движение планеты по эллипсу вокруг солнца. Подскажите пожалуйста...

Движение картинки по эллипсу
нужно что изображение двигалось по форме независимо от того, что мы делаем на форме..) как некая...

Движение двух тел по эллипсу
Вопрос, скорее, по вышмату, но все же: Необходимо составить алгоритм движения, при котором тело1...

Реализовать движение спутника земли
Как реализовать движение спутника земли(pictureBox10)? using System; using...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru