|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2012, 14:53 | #1 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
движение фигуры по форме
нужно нарисовать эллипс и круг. они должны произвольным образом двигаться по форме и дойдя до границы формы отталкиваться от нее и двигаться в другую сторону. как можно поменять направление движения фигуры при столкновении с границей формы? помогите пожалуйста
|
28.11.2012, 14:59 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Менять координаты круга в цикле. Пусть dx - скорость горизонтального перемещения, а dy - вертикального (на каждом шаге цикла к координате X круга прибавляем dx, а к координате Y - dy).
После каждого изменения координат проверяйте, не коснулся ли круг края формы. Т.е., для горизонтали, не превышает ли сумма координаты X и радиуса круга ширины нашей формы, или не меньше ли нуля эта сумма. Если да, то круг коснулся края формы и следует тупо изменить знак у числа dx. Аналогично и для вертикали. P.S. в цикл вставьте небольшую задержку, чтобы фигура не металась слишком быстро по экрану. Величины dx и dy подбирайте экспериментально
Благодарить в репутацию. Проклинать — туда же
|
28.11.2012, 19:22 | #3 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
вот что нужно сделать:
Создать приложение, при открытии которого в окне приложения появляется изображение сцены Сцена: Эллипс и круг перемещаются произвольным образом внутри заданной области в окне. Если эллипс и круг сталкиваются друг с другом, они должны поменять направление. Объекты не должны выходить за пределы области. я нарисовал эллипс. затем в таймере произвожу движение фигуры: Код:
Ewidth1, Eheight1- ширина и высота эллипса соответственно. в условии проверяю границы экрана и если фигура не выходит за границы то тогда осуществляю движение. после запуска программы понятно что чтото не так как можно исправить? |
28.11.2012, 22:03 | #4 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Вы вообще мой пост читали?
Благодарить в репутацию. Проклинать — туда же
|
28.11.2012, 23:28 | #5 | |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
Цитата:
только вот фигура двигается по диагонали. подскажите пожалуйста чтобы движение было более случайным. вот код: Код:
|
|
29.11.2012, 09:18 | #6 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Не обязательно прибавлять/отнимать именно единицу. Создайте переменные dx и dy, которые будете прибавлять/отнимать к Ex1 и Ey1 соответственно. Если dx == dy (в вашем коде - 1), то фигура будет перемещаться строго под углом 45градусов. Если к Ex1 прибавлять, например, тройку, а к Ey - единицу, то движение будет более пологим. Мысль улавливаете?
Благодарить в репутацию. Проклинать — туда же
|
29.11.2012, 14:22 | #7 | |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ООП - движение фигуры | Nataly026 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 23.05.2012 19:52 |
Движение фигуры | Di-em | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.01.2012 20:55 |
Движение одной фигуры,вслед изменения высоты другой фигуры. | 7vlad37 | Microsoft Office Excel | 3 | 21.07.2011 18:01 |
Движение фигуры По диагонали | Weyner | Мультимедиа в Delphi | 6 | 21.10.2010 15:10 |
Движение фигуры | Виталюкас | Общие вопросы Delphi | 2 | 28.04.2010 10:44 |