|
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 23
|
|
Графика в C#25.05.2013, 16:18. Показов 3006. Ответов 5
Метки нет (Все метки)
По двум осям непрерывно движутся два объекта. Достигая границ окна, они возвращаются на исходную, и так постоянно. Нужно реализовать алгоритм, который не будет давать объектам пересекаться при прохождении смежной точки осей. Много думал, ничего дельного не получается. Порекомендуйте, как можно лучше сделать это.
Единственное, до чего я пока додумался, это использовать таймеры. По тику таймера объект перемещается по оси до ее конечной точки. Затем этот таймер останавливается и запускается второй, который возвращает его на исходную. И так для двух объектов.
0
|
|
| 25.05.2013, 16:18 | |
|
Ответы с готовыми решениями:
5
Рисование графика: обработка новых входящих данных и движение графика на форме Построение графика графика квадратичной функции Chart - диаграмма: изменить точность делений графика, установить центр графика в (0,0) |
|
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
|
||||||
| 25.05.2013, 17:09 | ||||||
|
Не совсем понял суть задания, но вот маленький примерчик:
1
|
||||||
|
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 23
|
||||||
| 25.05.2013, 18:14 [ТС] | ||||||
|
Сложноватый примерчик для моего уровня ))) Каким образом решается моя задача в вашем примере?
Добавлено через 2 минуты Вот пока что то, что я успел намозговать. Работает малость некорректно.
0
|
||||||
|
212 / 214 / 44
Регистрация: 20.12.2011
Сообщений: 635
|
||
| 25.05.2013, 18:36 | ||
|
не нужен Вам второй таймер. попробую объяснить, надеюсь поймёте: у Вас есть 2 оси, допустим Вы смещаете по тику таймера каждый объект на 10 пикселей. алгоритм тогда получается следующий: 1. сместили на 10 пикселей 2. проверили, а не вышел ли объект за границу 3. если вышел, вернули на исходную 4. после проверки на выход за границу, проверяете, а не пересеклись ли объекты 5. если пересеклись, то либо сместили обратно на 10 пикселей(один объект пропускает второй), либо обработали как Вам нужно
0
|
||
|
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
|
|||||||
| 25.05.2013, 20:29 | |||||||
|
Класс Circle - это объекты которые будем двигать. У него есть позиция центра, радиус и скорость.
1 - если расстояние между шариками меньше чем 2.2 * (R1 + R2), то мы НЕ двигаем первый шарик, а только второй, т.е. первый шарик "уступает" дорогу второму. Константа 2.2 была выбрана от фонаря. 2 - обновляем позицию второго шарика. 3 - если 2ой шарик вышел за вертикальные границы формы, то мы его отражаем от стенок, т.е. меняем скорость на противоположную. 4 - тоже что и 3, только для 1ого шарика и горизонтальных границ формы.
0
|
|||||||
|
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 23
|
|
| 25.05.2013, 21:03 [ТС] | |
|
Fler, я знаю, как это выглядит. Объяснить-то это несложно ) Я застрял на последнем этапе - проверка на пересечения.
В моем коде координаты меняются в одном таймере для обоих объектов. Если один из них пропускает второй, то один проходит (по моему коду) избыточное расстояние и остается где-то за пределами и там совершает возвратные движения. Вот с этим у меня загвоздка.
0
|
|
| 25.05.2013, 21:03 | |
|
Помогаю со студенческими работами здесь
6
Автоматическое изменение графика при переносе данных, формулы и графика на другой лист
Построение графика производной для каждого графика из 3 режимов Шкала графика Chart Control - Сделать так, чтобы значения графика были с 2 знаками после запятой Графика: построить 2 графика в одной координатной плоскости Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|