Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 07.06.2011
Сообщений: 34

Определение столкновения шара и блока

19.12.2011, 18:10. Показов 1800. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если честно забача больше по геометрии, чем по программированию, но все таки. Нужно на C# определить с какой стороны шарик ударил по блоку. Вот что я сотворил, но этот код не определяет удара сверху
C#
1
2
3
4
5
6
7
private Side check(int i/*float x, float y,int Bx,int By*/)
{
        if (Up - (Game.Blocks[i].Y + 13.5) >= 0.5 * Math.Abs(Left + 6 - (Game.Blocks[i].X + 25))) return (Side.Down);
        else if (Up + 6 <= 50-0.5 * Math.Abs(Left + 6 - (Game.Blocks[i].X + 25))) return (Side.Up);
        else if (Left + 6 >= Game.Blocks[i].X + 25) return (Side.Left);
        else return (Side.Right);
}
Здесь:
Up - Верхняя граница шара(диаметр=12)
Blocks[i] - массив структур, содержащий в том числе и координаты
Left - левая сторона шара
Side - enum, соответственно обозначает сторону, с которой ударился шар

ps еще просьба если кто в этом соображает написать алгоритм получше, чем мой, тк еще есть проблемы, когда шар ударяется в край блока то отлетает не в ту сторону
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2011, 18:10
Ответы с готовыми решениями:

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

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

Чему равна напряженность поля у поверхности шара; на расстоянии 2 м от центра шара; внутри шара?
Электрический заряд 9 нКл равномерно распределен по поверхности шара радиусом 1 м. Чему равна напряженность поля 1) у поверхности шара; ...

1
 Аватар для sau
2774 / 2074 / 386
Регистрация: 22.07.2011
Сообщений: 7,822
20.12.2011, 00:36
В этот алгоритм не вникал, а в общем я бы сделал так:
У шара (окружности) есть центр XY и Radius, если координаты блока близки к пересечению с координатами шарика+Radius то начинаем определять координаты точек на ближайшей к блоку части шара. Если координаты точки на шаре попадают в площадь блока то - столкновение.
(координаты точки на шаре мы уже знаем т.к вычисляем их при отрисовке шара).
Ну а вычислить по какой стороне блока ударили, имея координаты столкновения, это уже дело техники, - просто определяем к какой стороне они ближе. (точнее точка столкновения ,на окружности шара, будет принадлежать одной из сторон блока)

З.Ы Сори за примитивный алгоритм, я не математик ) , и если задействовать игровые библиотеки типа XNA-а, то там уже есть встроенный движок определения столкновений. (что касается физики удара + пружина - то есть реализация PhisX-а для NET., там подобные вещи чуть ли не мышкой программируются )

Добавлено через 21 минуту
http://www.youtube.com/watch?v=1pF8NVr07O4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2011, 00:36
Помогаю со студенческими работами здесь

Определение заряд шара
Добрый День ! помогите решить задачу пожалуйста ! Сама вообще не понимаю как сделать !

Определение площади круга, длины окружности и объема шара
Определение площади круга, длины окружности и объема шара с использованием в качестве радиуса суммы знаков трехзначного числа.

Зная скорость и массу шаров до столкновения, расчитать скорости шаров после столкновения
Задача: Два шара с заданными массами и заданной скоростью (массы и скорость шаров различны) двигаются навстречу друг другу. В конце...

Определение тени блока
День добрый форумчане! :) Прошу вашей помощи в определении &quot;как сделать такую тень блока&quot;.

Определение размеров блока изображения
дано изображение с блочными артефактами, никак не пойму как определить эти блоки, даже не саму программу, а сам принцип этого определения....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru