|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.02.2016, 18:06 | #1 |
Новичок
Джуниор
Регистрация: 04.02.2016
Сообщений: 2
|
Если круги коснуться друг друга, или границ монитора, то должны отскочить
Бредовое задание,но мне нужно,что бы два моих круга могли двигаться в разные стороны(Рандомно).Если они коснуться друг друга,или границ монитора,то должны отскочить .Я сделал круги,осталось только движение и условие.Третий день пытаюсь .Ничего не выходит:c
Код:
Последний раз редактировалось Аватар; 04.02.2016 в 18:55. |
04.02.2016, 18:40 | #2 | |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Цитата:
Вот вместо Circle(500,150,50) сделайте например Circle(x1,y1,r1) , и меняйте координаты центра x1,y1 - это и будет движение одной окружности. Также и вторую сделать - Circle(x2,y2,r2) И проверяйте расстояние между окружностями по теореме Пифагора. Если оно стало <= (r1+r2) - значит они прикоснулись, и должны отскочить. Как там в физике - абсолютно упругий удар. То есть меняются направления движения. |
|
04.02.2016, 19:17 | #3 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
1) Рисование круга вывести в отдельную процедуру, которая будет принимать координаты центра круга и его радиус
2) В цикле меняете координаты кругов: сначала рисуете черный круг по текущим координатам, а потом белый по новым (тут надо ввести переменные, которые будем прибавлять к координатам круга на каждом шаге, т.н. приращение координат). Вот вам и движение ) 3) На каждом шаге цикла проверяете не коснулся ли круг стены (центр круга +- его радиус не должен быть "<0" или "> ширины/высоты экрана". НЕ коснулся ли круг другого круга - расстояние между центрами кругов (привет школьной геометрии) не должно быть меньше суммы их радиусов. Если есть касание - меняете знак приращения одной из координат круга -> он начинает двигаться в другую сторону ------- прозевал ответ предыдущего комментатора, там по сути уже все написано
Благодарить в репутацию. Проклинать — туда же
|
04.02.2016, 21:56 | #4 | |
Новичок
Джуниор
Регистрация: 04.02.2016
Сообщений: 2
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Assembler. Дан текст, слова которого отделяются друг от друга пробелами. Если слово минимальное по длине единственное, то... | megashara | Помощь студентам | 0 | 19.05.2014 11:12 |
Поиск файлов, дублирующих друг друга (C# или C++) | Constructor1990 | Помощь студентам | 4 | 14.02.2014 19:42 |
Два класса должны использовать не статичные методы друг друга. | Adis_ | Общие вопросы C/C++ | 4 | 21.05.2010 18:19 |
Как сделать так, что б Float-элементы не уезжали друг под друга (если не влазят в экран) | barbiturat | HTML и CSS | 3 | 09.12.2008 10:26 |