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

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

26.05.2015, 23:21. Просмотров 291. Ответов 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;
}
//---------------------------------------------------------------------------

http://www.cyberforum.ru/cpp-builder/thread1992363.html
0
Миниатюры
Модель планетарной системы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 23:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Модель планетарной системы (C++ Builder):

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

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

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

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

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

2
gunslinger
случайный прохожий
1269 / 800 / 317
Регистрация: 20.07.2013
Сообщений: 2,248
27.05.2015, 02:36 #2
Попробуй угол (его приращение) менять. Дели не на 180, а на другую величину.
Или alpha умножай / дели на число, что по сути то же самое.
1
stephen 92
0 / 0 / 1
Регистрация: 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
Привет! Вот еще темы с решениями:

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

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

Модель солнечной системы
Помогите пожалуйста как заставить планеты вращаться

Аналитическая модель системы
Всем доброго вечера, ситуация такая: есть задача, которая уже неоднократно...


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

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

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