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

C++ Builder

Войти
Регистрация
Восстановить пароль
 
stephen 92
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 2
#1

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

26.05.2015, 23:21. Просмотров 260. Ответов 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
Миниатюры
Модель планетарной системы  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модель планетарной системы (C++ Builder):

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

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

Аналитическая модель системы - GPSS
Всем доброго вечера, ситуация такая: есть задача, которая уже неоднократно всплывала на форуме. Она уже решена, есть код на gpss. Нужна...

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

3D модель солнечной системы - Java
Есть ли какие-то туториалы или справочная инфа по тому, как создать на java 3d модель солнечной системы? (наверное, с помощью JOGL) Или,...

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

2
gunslinger
случайный прохожий
1155 / 773 / 201
Регистрация: 20.07.2013
Сообщений: 2,162
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
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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