Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
stephen 92
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 2
1

Модель планетарной системы

26.05.2015, 23:21. Просмотров 302. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток. Я пишу курсач на тему "модель планетарной системы" и у меня получилось сделать что бы в центре было Солнце, а воокруг него кружыли 4 планеты (и в одной с них есть спутник). Но возникла проблема все планеты вращаются воокруг солнца одной линией. Подскажите что нужно сделать что бы все они кружили по своей траектории но с разной скоростью?
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
int alpha = 0, r = 100;
const double PI = 3.14159265;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Timer1->Enabled = true;
    Timer1->Interval = 100;
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 long x, y;
    float co, si;
 
    if (alpha == 360)
    {
        alpha = 0;
    }
 
    alpha = alpha + 1;
    x = long(r * cos(PI * alpha / 180) + 50);
    y = long(r * sin(PI * alpha / 180) - 50);
    Shape2->Left = Shape1->Left + x - Shape2->Width/2;
    Shape2->Top = Shape1->Top - y - Shape2->Height/2;
 
    x = long((r*1.5) * cos(PI * alpha / 180) + 50);
    y = long((r*1.5) * sin(PI * alpha / 180) - 50);
    Shape3->Left = Shape1->Left + x - Shape3->Width/2;
    Shape3->Top = Shape1->Top - y - Shape3->Height/2;
 
    x = long((r*4) * cos(PI * alpha / 180) + 50);
    y = long((r*4) * sin(PI * alpha / 180) - 50);
    Shape4->Left = Shape1->Left + x - Shape4->Width/2;
    Shape4->Top = Shape1->Top - y - Shape4->Height/2;
 
    x = long((r*2.7) * cos(PI * alpha / 180) + 50);
    y = long((r*2.7) * sin(PI * alpha / 180) - 50);
    Shape5->Left = Shape1->Left + x - Shape5->Width/2;
    Shape5->Top = Shape1->Top - y - Shape5->Height/2;
 
    y = long((r/2) * cos(PI * alpha / 180) - 30);
    x = long((r/2)* sin(PI * alpha / 180) + 35);
    Shape6->Left = Shape5->Left + x - Shape6->Width/1.5;
    Shape6->Top = Shape5->Top - y - Shape6->Height/1.5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  Timer1->Enabled = true;
  Timer1->Interval = 50;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  Timer1->Enabled = true;
  Timer1->Interval = 25;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
  Timer1->Enabled = true;
  Timer1->Interval = 1;
}
//---------------------------------------------------------------------------
0
Миниатюры
Модель планетарной системы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 23:21
Ответы с готовыми решениями:

Модель любой системы обслуживания
Помогите, пожалуйста, найти какую-то модель для обслуживания людей. Например модель ресторана,...

Графическое моделирование планетарной системы
Подскажите, пожалуйста, как можно создать модель вращения Земли вокруг Солнца? Не могу...

Модель распределенной системы
Привет всем, на связи нуб. :wall: Помогите сделать лабу. Требуется создать МОДЕЛЬ (именно...

Модель компьютерной системы
Компания использует компьютерную систему, состоящую из ЭВМ и n - терминалов. Заявки каждого...

3D модель солнечной системы
Есть ли какие-то туториалы или справочная инфа по тому, как создать на java 3d модель солнечной...

2
gunslinger
случайный прохожий
1289 / 811 / 319
Регистрация: 20.07.2013
Сообщений: 2,285
27.05.2015, 02:36 2
Попробуй угол (его приращение) менять. Дели не на 180, а на другую величину.
Или alpha умножай / дели на число, что по сути то же самое.
1
stephen 92
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 2
27.05.2015, 19:14  [ТС] 3
Огромное спасибо, очень выручили.
Дальше столклнулся с другой проблемой: планеты делали оборот на 360 градусов и сбрасывались на начальные координаты. Чтобы исправить ето надо было присвоить Alpha большое число ( 99999999999 например).
Еще раз спасибо и надеюсь комуто ето тоже поможет.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 19:14

Модель солнечной системы
Простой код, имитирующий движение планет солнечной системы. CLS SCREEN 12 WINDOW (0, 300)-(300,...

Модель вычислительной системы
Совсем не знаю языка GPSS. Помогите написать модель В вычислительную систему поступают задания на...

Модель терминальной системы
Нужна помощь в решии этой задачи.Заранее спасибо. К ЭВМ подключено 5 терминалов. С терминалов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru