Страница 1 из 2

Паскаль - Моделирование движения спутника!

Добавлено: 09 июн 2008, 22:09
sicaev
Добрый день! Помогите пожалуйста с курсовой...
На паскале написать программу "моделирование движения спутника"
Я без понятия именно той формулы, что описывает движение.............. :confused:

Re: Паскаль - Моделирование движения спутника!

Добавлено: 09 июн 2008, 23:41
Developer
Хм - может простое движение по окружности подойдет?Если не окружность - то по эллипсу

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 00:22
MOTOCoder
Да нет, тут тяготение и скорость учитывать надо.
Ищите в справочниках и учебниках по физике, быта там такая тема в 9-10 классе.

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 11:09
sicaev
Да вы что? какое тяготение?___))))) нееет)
Движение точки по окружности, вот и всё... прога реально простая, просто я не знаю формулу! она из синуса и косинуса состоит)
во многих справочниках и учебниках есть задача про аналоговые часы, может видели? тоже подобие...

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 11:10
sicaev
Developer, да) обычное движение по окружности?.... ты можешь это сделать? ^^

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 11:19
MOTOCoder
Ну вот процедура рисования стрелок часов:
[syntax='Delphi']
procedure Vector(x0,y0,a, l: integer);
{х0,у0 — начало вектора
а — угол между осью х и вектором
l — длина вектора}
const
GRAD = 0.0174532; { коэффициент пересчета угла из градусов
в радианы}
var
zx,zy: integer; { координаты конца вектора}
begin
MoveTo(x0, y0) ;
zx := Round(x0 + l*cos(a*GRAD));
zy := Round(y0 - l*sin(a*GRAD));
LineTo(zx,zy);
end;
[/syntax]

только вот я физику учил, вроде как радиус орбиты зависит от скорости движения спутника, а если больше второй космической, так вообще с орбиты сорвется :) .
Хотя, если физическая достоверность не требуется...

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 12:13
somewhere
Нееее, если уж вы моделируете спутник, то на самом деле его движение зависит от закона всемирного тяготения. Орбитальная скорость вместе с законом всемирного тяготения создают некий баланс, его траекторию движения, которая в общем случае есть эллипс. Я уже кажется писал о своем эмуляторе движения простейших частих и что из этого получалось. Всего один закон физики - а сколько разнообразных траекторий движения выходит.

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 12:15
sicaev
если по физике , то да! естественно зависит от тяготения, НО мне просто тупо нужна точка. которая летает по кругу.....

Re: Паскаль - Моделирование движения спутника!

Добавлено: 10 июн 2008, 12:36
MOTOCoder
Ну так я привел код.
Там рисуются стрелки, но можно рисовать только точку с координатами (ZX,ZY).
Просто нужно менять угол циклически от 0 до 360 и вызывать процедуру.

Re: Паскаль - Моделирование движения спутника!

Добавлено: 11 июн 2008, 20:31
sicaev
вобщем получилась вот такая херня:
program sputnik;
uses crt, graph, dos;

procedure sputnik (a:integer); {procedura risovaniya sputnika}
const GRAD = 0.0174532; {constanta perescheta ugla: radian-gradus}
var zx, zy: integer;
begin
zx:=Round(320+100*sin(a*GRAD)); {schitaem koordinatu X}
zy:=Round(240-100*cos(a*GRAD)); {schitaem koordinatu Y}
setcolor(15);
circle(zx, zy, 2); {risuem sputnik}
delay(2000); {zhdem}
setcolor(0);
circle(zx, zy, 2); {zakrshivaem staruyu prorisovku}
end;

var gd, gm, i: integer;
begin
gd:=DETECT;
i:=1;
initgraph(gd, gm, ''); {initsializiruem grafiku}
circle(320,240,40);
outtextxy(292, 236, 'Planeta'); {risuem planetu}
while not keypressed do begin {cikl poka ne nazhata klavisha}

if i=360 then i:=1; {esli ugol 360 gradusov, to snova 1 gradus}
sputnik(i); {risuem sputnik po uhlu i}
i:=i+1; {plusuem ugol}
end;
closegraph; {zakryvaem grafiku}
end.