| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Анимация |
| Автор: annaj 15.5.2006, 16:15 |
| Задание такое: смоделировать в VB вращение Земли вокруг Солнца по элипсоидной орбите. Кто скажет, как это сделать (как min - хотя бы общая структура программы, через что это делать *циклы и пр.*, ну и как max - каким образом и с помощью каких кодов эту программу вообще писать. ОЧЕНЬ надеюсь на помощь. |
| Автор: cardinal 15.5.2006, 16:24 |
| Требуют 2D или 3D графику в модели? |
| Автор: annaj 15.5.2006, 16:54 |
| 2d, желателен вариант с ускоренным движением |
| Автор: profispb 16.5.2006, 15:01 |
| annaj, А если картинку поставить(т.е. несколько картинок) и заменять через интервал времени, или нужно с помощью сложных математических расчетов. |
| Автор: Akina 16.5.2006, 15:08 |
| Структура: 1) Задать исходное состояние 2) Нарисовать 3) Рассчитать конечное состояние через заданный квант времени (численное интегрирование ур. Кеплера) 4) Перерисовать 5) Фигачить п.п. 3 и 4 пока юзер кнопку не нажмет. 6) End Ускорение-замедление - просто изменение кванта времени. |
| Автор: annaj 16.5.2006, 15:16 |
| profispb Картинки надо нарисовать, но это не проблема, вопрос в расчетах: как сделать так, что бы при приближени ик солнцу земля двигалась быстрее, а при удалении - медленнее Akina а вот можно поподробнее про квант времени и Кеплера - что это такое и как его зафигачить в код? ;) |
| Автор: profispb 16.5.2006, 18:38 | ||
annaj,
Сделать это можно расчитав интервал времени: приблежается к сонцу картинка обновляется быстрее, отдоляется от солнца картинка обновляется медленно. |
| Автор: annaj 16.5.2006, 18:42 |
| Хорошая идея. Только вот как это сделать? |
| Автор: Akina 17.5.2006, 11:18 |
Квант времени - это виртуальный промежуток времени, через который выполняется вывод на экран следующего состояния системы. Например ты намерен рисовать со скоростью 720 часов (1 месяц) в минуту (60 секунд). Быстродействие системы тебе позволяет с запасом просчитывать 40 последовательных состояний в секунду. Квант времени получается 720 / (60 * 40) = 0.3 часа = 18 минут. Именно с таким шагом тебе и надо интегрировать уравнение Кеплера, которое описывает движение тела в гравитационном поле удаленной точки (планеты вокруг Солнца без учета влияния других планет и вращения самого Солнца вокруг общего центра масс солнечной системы), и которое ты найдешь в школьном курсе астрономии. Численное интегрирование выполняется любым стандартным методом, обеспечивающим необходимую точность. |
| Автор: annaj 20.5.2006, 20:15 |
| cardinal, хм, не работает( Бейсик многие знаки подчеркивает и пишет ошибки... |
| Автор: cardinal 21.5.2006, 01:19 |
| annaj, выкладывай проект... |
| Автор: annaj 21.5.2006, 08:05 |
| какой? я говорила о написанной выше программе... |
| Автор: cardinal 21.5.2006, 13:28 |
| Ты кнопку с названием Command1 (default имя кнопки при ее создании) на форму кинула? |