Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
vladikvostok
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
#1

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

07.12.2013, 04:39. Просмотров 2665. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 04:39
Ответы с готовыми решениями:

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

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

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

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

Построить модель траектории движения тела, пройденного расстояния и точки падения
В тело брошено под углом горизонта. Известно начальная скорость броска и угол....

8
Cyborg Drone
Модератор
5287 / 3161 / 2441
Регистрация: 17.08.2012
Сообщений: 10,154
07.12.2013, 05:22 #2
И? Всему форуму бежать изучать законы гравитации? Что Вы уже написали? Выкладывайте, поможем.
1
vladikvostok
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
07.12.2013, 20:08  [ТС] #3
прошу пращение за малограмотность для налала у меня не получается присвоить данные из массива для каждой отдельной планеты чтоб ходтябы они при запуске распологались горизонтально на оси х позже попробую перейти к формулам заранее спосибо
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
vladikvostok
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
10.12.2013, 02:38  [ТС] #4
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
Cyborg Drone
10.12.2013, 13:44
  #5

Не по теме:

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

1
vladikvostok
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
13.12.2013, 22:54  [ТС] #6
не получается вывести на графику планеты откликнитись кто ни будь в каком направлении двигатся
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.
0
Вложения
Тип файла: zip модель солнечной системы.zip (225.3 Кб, 23 просмотров)
vladikvostok
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 25
15.12.2013, 19:37  [ТС] #7
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
ildwine
16.12.2013, 13:01
  #8
 Комментарий модератора 
vladikvostok, 4 темы объединено в одну. Не создавайте дубли тем! Это противоречит правилам форума.
0
Nurbergen
0 / 0 / 0
Регистрация: 24.05.2015
Сообщений: 1
24.05.2015, 12:07 #9
модель солнечной системы че то не работает. Почему помогите?
0
24.05.2015, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2015, 12:07

Реализовать модель математического маятника с учетом трения в точке подвеса
Реализовать модель математического маятника с учетом трения в точке подвеса....

Написать программу по движению планет
Это программа по движению планет. Вам надо довести до 9 планет, цвета можно...

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


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

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

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