Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2017, 14:57   #1
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
Вопрос Паскаль! Как сделать условие: чем дальше планеты от солнца, тем медленнее они крутятся? Почему Луна немного косит?

"Модель солнечной системы с 3 планетами(Меркурий, Венера, Земля) и 1 спутник (Луна). Важное условие: чем дальше планеты от солнца, тем медленнее они крутятся."
Как сделать условие: чем дальше планеты от солнца, тем медленнее они крутятся? Почему Луна немного косит?
программа:
Код:
uses crt, graphabc;
var x,y,x0,y0,rvod,rel,xe,ye,dy,re,i,re2,dy2,xe2,ye2,xe3,ye3,re3,dy3,a,b,re4,dy4,c:integer;
begin
x:=640;
y:=480;
setwindowsize(x,y);
x0:= x div 2;
y0:= y div 2;
rvod:=30;
rel:=10;
dy:=50;
re:=y0-dy;
dy2:=100;
re2:=y0-dy2;
dy3:=150;
re3:=y0-dy3;
dy4:=20;
re4:=ye-dy4;
i:=360;
c:=5;
repeat
clearwindow;
if i=360 then i:=3 else inc(i);

setpencolor(clyellow); //Sun
circle(x0,y0,rvod);
floodfill(x0,y0,clyellow);

xe:=x0+round(re*cos(i*pi/180));
ye:=y0+round(re*sin(i*pi/180));
setpencolor(clblue);
circle(xe,ye+1,rel);
floodfill(xe,ye,clblue);
delay(50);

 xe2:=x0+round(re2*cos(i*pi/180));
ye2:=y0+round(re2*sin(i*pi/180));
setpencolor(clgray);
circle(xe2,ye2,rel);
floodfill(xe2,ye2,clgray);
delay(50);

xe3:=x0+round(re3*cos(i*pi/180));
ye3:=y0+round(re3*sin(i*pi/180));
setpencolor(clolive);
circle(xe3,ye3,rel);
floodfill(xe3,ye3,clolive);
delay(50);


a:=xe+round(re4*cos(i*pi/180));
b:=ye+round(re4*cos(i*pi/180));
circle(a,b,c);
floodfill(a,b,clblack);
delay(50);
until keypressed;
end.
Jenee вне форума Ответить с цитированием
Старый 14.04.2017, 15:11   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Дык делай разной угловую скорость, а не одинаковую как у тебя. Т.е. в cos(i*pi/180)) и для sin тоже не просто на i умножай, а еще на коэффициент, который тем меньше, чем больше радиус.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.04.2017, 15:24   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Во-первых - переделайте с массивами, иначе читать ваш код невозможно. Он станет гораздо короче и понятнее.
И комменты напишите - где у вас координаты Солнца, Земли, и т.д.
Во-вторых -
Цитата:
Сообщение от Jenee Посмотреть сообщение
чем дальше планеты от солнца, тем медленнее они крутятся
Чем-чем - это как ?
Просто обратно пропорционально, или по законам Кеплера - линейная скорость обратно пропорциональна корню квадратному от расстояния ?
(Если угловая скорость - то обр. проп. расстоянию^1.5)
И еще - если изображать все в одном ( правильном ) масштабе , то расстояние от Земли до Солнца в 400 раз больше расстояния от Земли до Луны. То есть орбита Луны будет практически неразличима от орбиты Земли.

Последний раз редактировалось type_Oleg; 14.04.2017 в 15:27.
type_Oleg вне форума Ответить с цитированием
Старый 16.04.2017, 09:09   #4
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
По умолчанию

Аватар, СПАСИБО!
Jenee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ медленнее чем C# winhttp Общие вопросы C/C++ 27 19.02.2013 21:04
Почему Excel 2010 выполняет поиск гораздо медленнее чем Excel 2003 Sprat Microsoft Office Excel 1 25.10.2011 05:34
Чем дальше, тем проще _-Re@l-_ Свободное общение 51 17.11.2010 20:23
В Excel 2010 макрос медленнее в 3 раза чем в 2007 Владимир. Microsoft Office Excel 12 22.05.2010 18:24
Проблема с загрузкой компьютера и чем дальше, тем чаще Altera Компьютерное железо 19 02.05.2010 20:00