Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Вниз

Помогите решить графическую задачу на паскале   Найти похожие ветки 

 
Алексей   (2004-02-16 12:06) [0]

Я графикой слабо владею, поэтому буду рад любой помощи. Спасибо.
"Движение к звездам."
Иллюминатор космического корабля обращен в сторону его стремительного движения к звездам. Создайте программу, которая рисует «звездное небо» видимое из иллюминатора: звезды двигаются по направлению от центра экрана к его краям.


 
Oyster   (2004-02-16 12:16) [1]

Надо взять листик бумаги и немножко поработать с геометрией.
Рисуем:

--------l1----------*---l2---*----------- Путь звезды

h

- корабль.

Звезда появляется где-то далеко (на расстоянии, скажем, s от корабля) и летит со скоростью v к нему. С помощью тригонометрии вычисляем зависимость угла вперед-корабль-звезда от времени, угол переводим в координату на экране, там ее в соотв. момент и отображаем. Самому мне считать лень, сделай это ты.


 
Dimka Maslov   (2004-02-16 12:19) [2]

http://delphibase.endimus.com/?action=viewfunc&topic=mediaimg&id=10454


 
Marser   (2004-02-16 12:30) [3]

Случайным образом появляются точки, которые удаляются от центра экрана(канвы) с определенной постоянной скоростью, создавая эфект приближения. Причем, новые появляются при исчезании старых.


 
Oyster   (2004-02-16 12:37) [4]


> с определенной постоянной скоростью

Разве? Это что-то новенькое. Посмотри заставку в Far или "Сквозь Вселенную" в Windows. Что-то я там постоянной скорости не заметил.


 
Алексей   (2004-02-16 12:39) [5]

2Dimka Maslov
Твой исходник показывает пустой экран у меня. Почему?
И что значит вот эта ассемблерная вставка:
function KeyPressed(VKey: Integer): LongBool;
asm
push eax
call GetKeyState
and eax, 0080h
shr al, 7
end; ?
2Oyster,Marser
Вы сами пробовали сделать то, что говорите?


 
Dimka Maslov   (2004-02-16 12:41) [6]

>Алексей (16.02.04 12:39) [5]
1. А как ты это используешь?
2. Проверяет не нажата ли клавиша Esc


 
Oyster   (2004-02-16 12:43) [7]


> Вы сами пробовали сделать то, что говорите?

Не пробовал. Но без труда и Блокнота не напишешь :-)


 
Алексей   (2004-02-16 13:16) [8]

2Dimka Maslov
"А как ты это используешь?"
ctrl+c - ctrl+v. А как надо? :)


 
Dimka Maslov   (2004-02-16 13:26) [9]

>Алексей (16.02.04 13:16) [8]
А события формы в инспекторе объектов устанавливаешь?
FormCreate, FormResize и FormPaint?


 
Алексей   (2004-02-16 14:15) [10]

2Dimka Maslov
Хорошо сделал. Но слишком громоздко это все. Если не трудно, как там отключить вращение и полет назад? Т.е я хочу максимально уменьшить исходный код, чтобы было только то, что написано в сабже.


 
Алексей   (2004-02-16 14:19) [11]

А лучше, объясни как у тебя там все работает.


 
Dimka Maslov   (2004-02-16 14:29) [12]

>Алексей (16.02.04 14:19) [11]
Через перспективу

Вращение отключается установкой значения Period1 = 0,
Вращательные колебания: Period2 = 0
Возвратное движение:
вместо D := Direction * sin (Period3 * Time); ставишь D := 1;


 
Кот Бегемот   (2004-02-16 15:58) [13]

>А лучше, объясни как у тебя там все работает.

А бутерброд за тебя не пожевать ???



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-25768
sapsi
2004-02-26 10:48
2004.03.09
Минимизация формы


6-25837
Typoi_Beginer
2003-12-28 18:29
2004.03.09
Передача данных на удалённый комп.


3-25714
x_x_x
2004-02-11 13:40
2004.03.09
Как сохранить данные из ClientDataSet в некоторый файл


14-25873
TUser
2004-02-16 16:22
2004.03.09
Кому надоели пингвины?


3-25697
Yrtimd
2004-02-10 18:49
2004.03.09
Как в ehDbGrid узнать, какую запись выбрал пользователь?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский