![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]()
нужно нарисовать эллипс и круг. они должны произвольным образом двигаться по форме и дойдя до границы формы отталкиваться от нее и двигаться в другую сторону. как можно поменять направление движения фигуры при столкновении с границей формы? помогите пожалуйста
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Менять координаты круга в цикле. Пусть dx - скорость горизонтального перемещения, а dy - вертикального (на каждом шаге цикла к координате X круга прибавляем dx, а к координате Y - dy).
После каждого изменения координат проверяйте, не коснулся ли круг края формы. Т.е., для горизонтали, не превышает ли сумма координаты X и радиуса круга ширины нашей формы, или не меньше ли нуля эта сумма. Если да, то круг коснулся края формы и следует тупо изменить знак у числа dx. Аналогично и для вертикали. P.S. в цикл вставьте небольшую задержку, чтобы фигура не металась слишком быстро по экрану. Величины dx и dy подбирайте экспериментально
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]()
вот что нужно сделать:
Создать приложение, при открытии которого в окне приложения появляется изображение сцены Сцена: Эллипс и круг перемещаются произвольным образом внутри заданной области в окне. Если эллипс и круг сталкиваются друг с другом, они должны поменять направление. Объекты не должны выходить за пределы области. я нарисовал эллипс. затем в таймере произвожу движение фигуры: Код:
Ewidth1, Eheight1- ширина и высота эллипса соответственно. в условии проверяю границы экрана и если фигура не выходит за границы то тогда осуществляю движение. после запуска программы понятно что чтото не так ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Вы вообще мой пост читали?
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 09.06.2009
Сообщений: 545
|
![]() Цитата:
![]() только вот фигура двигается по диагонали. подскажите пожалуйста чтобы движение было более случайным. вот код: Код:
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Не обязательно прибавлять/отнимать именно единицу. Создайте переменные dx и dy, которые будете прибавлять/отнимать к Ex1 и Ey1 соответственно. Если dx == dy (в вашем коде - 1), то фигура будет перемещаться строго под углом 45градусов. Если к Ex1 прибавлять, например, тройку, а к Ey - единицу, то движение будет более пологим. Мысль улавливаете?
![]()
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#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 |