Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25

Реализовать модель движения планет вокруг Солнца

07.12.2013, 04:39. Показов 7802. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
y[1]:=0;
  m[1]:=1.989e+30;       x[1]:=0;                      dy[1]:=0;
  m[2]:=3.303e+23;       x[2]:=57.85E+9;               dy[2]:=4.787E+4;
  m[3]:=4.869e+24;       x[3]:=108.11E+9;              dy[3]:=3.502E+4;
  m[4]:=5.974e+24;       x[4]:=149.46E+9;              dy[4]:=2.978E+4;
  m[5]:=6.421e+23;       x[5]:=227.7E+9;               dy[5]:=2.1413E+4;
  m[6]:=1.900e+27;       x[6]:=777.6E+9;               dy[6]:=1.307E+4;
  m[7]:=5.688e+26;       x[7]:=1426E+9;                dy[7]:=9.69E+3;
  m[8]:=8.686e+25;       x[8]:=2868.3E+9;              dy[8]:=6.81E+3;
  m[9]:=1.024e+26;       x[9]:=4494.3E+9;              dy[9]:=5.43E+3;
  m[10]:=1.29e+22;       x[10]:=5900E+9;               dy[10]:=4.72E+3;
  m[11]:=7.349e+22;      x[11]:=x[4]+384401E+3;        dy[11]:=2.978e+4-1.023e+3;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.12.2013, 04:39
Ответы с готовыми решениями:

Модель движения тела в гравитационном поле звезды и двух планет
Делал ли кто нибудь подобную программу? Возможно у кого то есть наработки? Буду очень признателен за помощь.

Движение Земли вокруг Солнца
Помогите пожалуйста написать код Создать графическую анимацию с пейзажем. -Полнота анимированной картинки (присутствие заднего фона); ...

Изобразить движение планеты вокруг солнца по эллипсу
изобразить движение планеты вокруг солнца по эллипсу.

8
Модератор
10430 / 5718 / 3404
Регистрация: 17.08.2012
Сообщений: 17,389
07.12.2013, 05:22
И? Всему форуму бежать изучать законы гравитации? Что Вы уже написали? Выкладывайте, поможем.
1
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
07.12.2013, 20:08  [ТС]
прошу пращение за малограмотность для налала у меня не получается присвоить данные из массива для каждой отдельной планеты чтоб ходтябы они при запуске распологались горизонтально на оси х позже попробую перейти к формулам заранее спосибо
Pascal
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
uses crt, GraphABC;
 
var x0,y0,x,y,R1,r2,u,i,r3,r4,t1,t2,t3,t4,t: integer;
 
begin
  HideCursor;
  SetWindowSize(800,500);
  r1:=50;    t1:=4;
  r2:=80;    t2:=3;
  r3:=110;   t3:=2;
  r4:=140;   t4:=1;
 
  lockdrawing;
  x0:=350; y0:=300;
  for u:=-270 to 90 do
  begin
    ClearWindow;
    setbrushcolor(clyellow);
    circle(350,300,20);
    SetPenWidth(1);
    x:=x0+Round(r1*sin(t1*Pi*u/180));
    y:=y0-Round(r1*cos(t1*Pi*u/180));
    SetPenWidth(1);
    setbrushcolor(clPurple);
    circle(x,y,10);
    x:=x0+Round(r2*sin(t2*Pi*u/180));
    y:=y0-Round(r2*cos(t2*Pi*u/180));
    SetPenWidth(1);
    setbrushcolor(clLime);
    circle(x,y,10);
    setbrushcolor(clBlue);
    x:=x0+Round(r3*sin(t3*Pi*u/180));
    y:=y0-Round(r3*cos(t3*Pi*u/180));
    SetPenWidth(1);
    circle(x,y,10);
     setbrushcolor(clRed);
    x:=x0+Round(r4*sin(t4*Pi*u/180));
    y:=y0-Round(r4*cos(t4*Pi*u/180));
    SetPenWidth(1);
    circle(x,y,10);
   delay(100);
    Redraw;
   end;
 
end.
0
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
10.12.2013, 02:38  [ТС]
Pascal
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
uses crt,GraphABC;
 type  info=record
      m,x,dy,y,dx,old,zoom:real;
        x1,y1:integer;
   title:string;
   
   end;
  const
 G=6.67e-11;
 var
   splanet: array [1..11] of string;
   mas: array [1..11] of info;
   zoom,t,dt,cosA,sinA,R,ax,ay,tvr: real;
  tobr,tobrsum,robr,maxrobr,minrobr: array [1..11] of real;
  rb:array [1..11] of boolean;
     i,j, chis,xx,yy:integer;
 
   begin
     SetWindowSize(800,600);
 
 
splanet[1]:='Солнце=';
splanet[2]:='Меркурий=';
splanet[3]:='Венера=';
splanet[4]:='Земля=';
splanet[5]:='Марс=';
splanet[6]:='Юпитер=';
splanet[7]:='Сатурн=';
splanet[8]:='Уран=';
splanet[9]:='Нептун=';
splanet[10]:='Плутон=';
splanet[11]:='Луна=';
begin
  dt:=15;
with mas[1] do
 begin
  title:='Сoлнце';
   m:=1.989e+30;
   x:=0;
   old:=0.1;
   y:=0;
   dx:=0;
   dy:=0;
   setbrushcolor(clyellow);
   circle(x1,y1,20);
   end;
 with mas[2] do
 begin
    title:='Меркурий';
    m:=3.303e+23;
    x:=57.85E+9;
    y:=0;
    old:=0.1;
    dx:=0;
    dy:=4.787E+4;
   setbrushcolor(clPurple);
   circle(x1,y1,10);
   end;
   with mas[3] do
  begin
   title:='Венера';
   m:=4.869e+24;
   x:=108.11E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=3.502E+4;
   setbrushcolor(clLime);
   circle(x1,y1,10);
     end;
      with mas[4] do
  begin
   title:='Земля';
   m:=5.974e+24;
   x:=149.46E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=2.978E+4;
   setbrushcolor(clBlue);
   circle(xx,yy,10);
     end;
     with mas[5] do
  begin
   title:='Марс';
   m:=6.421e+23;
   x:=227.7E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=2.31413E+4;
   setbrushcolor(clRed);
   circle(x1,y1,10);
    end;
  end;
{Юпитер}
 with mas[6] do
  begin
   title:='Юпитер';
   m:=1.900e+27;
   x:=777.6E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=1.307E+4;
   setbrushcolor(clGray);
   circle(x1,y1,10);
    end;
 
{Сатурн}
 with mas[7] do
  begin
   title:='Сатурн';
   m:=5.688e+26;
   x:=1426E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=9.69E+3;
   setbrushcolor(clAqua);
   circle(x1,y1,5);
    end;
 
 with mas[8] do
  begin
   title:='Уран';
   m:=8.686e+25;
   x:=2868.3E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=6.81E+3;
   setbrushcolor(clGreen);
   circle(x1,y1,5);
    end;
{Нептун}
 with mas[9] do
  begin
   title:='Нептун';
   m:=1.024e+26;
   x:=4494.3E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=5.43E+3;
   setbrushcolor(clTeal);
   circle(x1,y1,5);
    end;
 
{Плутон}
 with mas[10] do
  begin
   title:='Плутон';
   m:=1.29e+22;
   x:=5900E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=4.72E+3;
   setbrushcolor(clSilver);
   circle(x1,y1,10);
  end;
{Луна}
 with mas[11] do
  begin
   title:='Луна';
   m:=7.349e+22;
   x:=mas[4].x+384401E+3;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=(2.978e+4)-(1.023e+3);
   setbrushcolor(clwhite);
   circle(xx,yy,10);
    end;
    begin
 
    for chis:=0 to 10000 do
 begin
  {рисуем}
  t:=t+dt;
  for i:=1 to 11 do
  begin
   ax:=0;
   ay:=0;
   for j:=1 to 11 do
    if i<>j then
     begin
      R:=sqrt(sqr(mas[i].x-mas[j].x)+sqr(mas[i].y-mas[j].y));
      cosA:=-(mas[i].x-mas[j].x)/(R);
      sinA:=-(mas[i].y-mas[j].y)/(R);
      ax:=ax+G*mas[j].m*cosA/sqr(R);
      ay:=ay+G*mas[j].m*sinA/sqr(R);
     end;
   mas[i].dx:=mas[i].dx+dt*ax;
   mas[i].dy:=mas[i].dy+dt*ay;
   mas[i].x:=mas[i].x+mas[i].dx*dt;
   mas[i].y:=mas[i].y+mas[i].dy*dt;
   end;
 
 for i:=1 to 11 do
  begin
   with mas[i] do
    begin
      xx:=windowwidth+round(mas[i].x-mas[4].x);
      yy:=windowheight+round(mas[i].y-mas[4].y);
 
    end;
       end;
        end;
          end;
   end.
0
10.12.2013, 13:44

Не по теме:

Никак с графикой ABC не разберусь... Помошничек, блин...

1
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
13.12.2013, 22:54  [ТС]
не получается вывести на графику планеты откликнитись кто ни будь в каком направлении двигатся
Pascal
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
 uses crt,GraphABC;
 type  info=record
      m,x,dy,y,dx,old,zoom:real;
        x1,y1:integer;
   title:string;
   
   end;
  const
 G=6.67e-11;
 var
   splanet: array [1..11] of string;
   mas: array [1..11] of info;
   zoom,t,dt,cosA,sinA,R,ax,ay,tvr: real;
  tobr,tobrsum,robr,maxrobr,minrobr: array [1..11] of real;
  rb:array [1..11] of boolean;
     i,j, chis,xx,yy:integer;
 
   begin
     SetWindowSize(800,600);
       floodfill(10,10,clblack);
splanet[1]:='Солнце=';
splanet[2]:='Меркурий=';
splanet[3]:='Венера=';
splanet[4]:='Земля=';
splanet[5]:='Марс=';
splanet[6]:='Юпитер=';
splanet[7]:='Сатурн=';
splanet[8]:='Уран=';
splanet[9]:='Нептун=';
splanet[10]:='Плутон=';
splanet[11]:='Луна=';
begin
 
  dt:=15;
with mas[1] do
 begin
  title:='Сoлнце';
   m:=1.989e+30;
   x:=0;
   old:=0.1;
   y:=0;
   dx:=0;
   dy:=0;
   setbrushcolor(clyellow);
   circle(390,300,10);
   end;
 with mas[2] do
 begin
    title:='Меркурий';
    m:=3.303e+23;
    x:=57.85E+9;
    y:=0;
    old:=0.1;
    dx:=0;
    dy:=4.787E+4;
   setbrushcolor(clPurple);
   circle(xx,yy,10);
   end;
   with mas[3] do
  begin
   title:='Венера';
   m:=4.869e+24;
   x:=108.11E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=3.502E+4;
   setbrushcolor(clLime);
   circle(xx,yy,10);
     end;
      with mas[4] do
  begin
   title:='Земля';
   m:=5.974e+24;
   x:=149.46E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=2.978E+4;
   setbrushcolor(clBlue);
   circle(xx,yy,10);
     end;
     with mas[5] do
  begin
   title:='Марс';
   m:=6.421e+23;
   x:=227.7E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=2.31413E+4;
   setbrushcolor(clRed);
   circle(xx,yy,10);
    end;
  end;
{Юпитер}
 with mas[6] do
  begin
   title:='Юпитер';
   m:=1.900e+27;
   x:=777.6E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=1.307E+4;
   setbrushcolor(clGray);
   circle(xx,yy,10);
    end;
 
{Сатурн}
 with mas[7] do
  begin
   title:='Сатурн';
   m:=5.688e+26;
   x:=1426E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=9.69E+3;
   setbrushcolor(clAqua);
   circle(xx,yy,5);
    end;
 
 with mas[8] do
  begin
   title:='Уран';
   m:=8.686e+25;
   x:=2868.3E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=6.81E+3;
   setbrushcolor(clGreen);
   circle(xx,yy,5);
    end;
{Нептун}
 with mas[9] do
  begin
   title:='Нептун';
   m:=1.024e+26;
   x:=4494.3E+9;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=5.43E+3;
   setbrushcolor(clTeal);
   circle(xx,yy,5);
    end;
 
{Плутон}
 with mas[10] do
  begin
   title:='Плутон';
   m:=1.29e+22;
   x:=5900E+9;
   y:=0;
   dx:=0;
   old:=0.1;
   dy:=4.72E+3;
   setbrushcolor(clSilver);
   circle(xx,yy,10);
 
  end;
{Луна}
 with mas[11] do
  begin
   title:='Луна';
   m:=7.349e+22;
   x:=mas[4].x+384401E+3;
   y:=0;
   old:=0.1;
   dx:=0;
   dy:=(2.978e+4)-(1.023e+3);
   setbrushcolor(clwhite);
   circle(xx,yy,10);
    end;
    while true do
    begin
    for chis:=0 to 10000 do
 begin
  {рисуем}
  t:=t+dt;
  for i:=1 to 11 do
  begin
   ax:=0;
   ay:=0;
   for j:=1 to 11 do
    if i<>j then
     begin
  [[COLOR="#ff0000"]COLOR="Red"]    R:=sqrt(sqr(mas[i].x-mas[j].x)+sqr(mas[i].y-mas[j].y));
      cosA:=-(mas[i].x-mas[j].x)/(R);
      sinA:=-(mas[i].y-mas[j].y)/(R);
      ax:=ax+G*mas[j].m*cosA/sqr(R);
      ay:=ay+G*mas[j].m*sinA/sqr(R);
     end;
   mas[i].dx:=mas[i].dx+dt*ax;
   mas[i].dy:=mas[i].dy+dt*ay;
   mas[i].x:=mas[i].x+mas[i].dx*dt;
   mas[i].y:=mas[i].y+mas[i].dy*dt;[/COLOR]
  {Мин и Макс радиусы обращения для каждой планеты}
  robr[i]:=sqrt(sqr(mas[i].x)+sqr(mas[i].y));//находим текущий радиус вектор[/COLOR]
  end;
  repeat
    for i:=1 to 11 do
 
  xx:=round(mas[i].x-mas[4].x);
  yy:=round(mas[i].y-mas[4].y);
  until keypressed;
     end;
       end;
   end.
Вложения
Тип файла: zip модель солнечной системы.zip (225.3 Кб, 35 просмотров)
0
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
15.12.2013, 19:37  [ТС]
Pascal
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
program ps;
uses Crt, GraphABC;
const
 G=6.67e-11;
var x0,y0,xx,yy,u,x1,y1: integer;
 ux,uy,alpha,dt,r,ax,ay,m,vx,vy,t,x,y,dx,dy:real;
 N, i : Integer;
 xi,yi:integer;
begin
  SetWindowSize(600,600);
 ClrScr;
 
x:=100.0;     r:=0.0;
y:=290.0;     x0:=WindowWidth div 2;
vx:=0.1;      x0:=WindowHeight div 2;
vy:=1.5 ;
ax:=0.0;       x1:=350; y1:=300;
ay:=0.0 ;
 alpha:=45;//траектории в градусах
 i := 1;
 N:=100;
 t := 0;
  begin
 
 r:=sqrt(sqr(x- X0) + sqr(y - Y0));
    ax:= G * m * (x0-x)/sqr(r);
    ay:=G * m * (y0-y)/sqr(r);
    vx := vx + t * ax;
    vy := vy + t * ax;
    dt:=15;
 while true do
 begin
         dx := x + t * vx;
         dy := y + t * vy;
          u:=round(dy);
        for u:=-90 to 90 do
  begin
       xx:=x1+Round(ax*sin(Pi*u/180));
       yy:=y1-Round(ay*cos(Pi*u/180));
       
          SetBrushColor(clYellow);
       circle(300,300,10);
 
        SetBrushColor(clRed);
       circle(xx,yy,10);
 
        t := t + dt;
 
        sleep(2);
        
        if i mod 20 = 0 then
         end;
 end;
 end;
end.
0
16.12.2013, 13:01
 Комментарий модератора 
vladikvostok, 4 темы объединено в одну. Не создавайте дубли тем! Это противоречит правилам форума.
0
0 / 0 / 0
Регистрация: 24.05.2015
Сообщений: 1
24.05.2015, 12:07
модель солнечной системы че то не работает. Почему помогите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2015, 12:07
Помогаю со студенческими работами здесь

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

Как сделать модель движения заряженной частицы в однородном магнитном поле? И как сделать эту модель визуально видимой?
Для проекта в школе нужно создать компьютерную модель движения заряженной частицы в однородном магнитном поле. Я не силён в созданиях...

Создать модель движения Солнца вокруг орбиты, Земли вокруг Солнца, Луны вокруг земли
Вот есть набросок, что дальше? :help: Const pi = 3.14 Dim intRev As Single Private Sub Command1_Click() BackColor = vbBlue ...

Составить программу демонстрации движения планет вокруг Солнца
Составить программу демонстрации движения планет вокруг Солнца.

Вращение планет вокруг Солнца
program graf_1; uses graph,crt; var g,m,i:integer; size:word; p,r:pointer; errCode:integer; begin randomize; g:=detect; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru