Реализовать физику бильярда для игры-симулятора

Медведев15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
24.12.2009

Требуется реализовать физическую часть симулятора игры в бильярд.

Описание модели:

Бильярдные шары с заданными массой, радиусом.

Приямоугольный бильярдный стол с шестью лузами и стол без них произвольного размера.

Количество шаров не более 20-ти, шары могут иметь разную массу и радиусы, но плотность постоянна в каждой точке.

Борта стола состоят из дерева с внешней частью, сделаннои из резины, покрытие из сукна.

Поверхность стола, по которой катятся шары из твердого гладкого камня или бетона, покрытого сукном.

Кий может иметь произвольную массу, наклейка кия из кожи и покрыта мелом.

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

Шары могут двигаться по криволинейной пространственной траектории, т.е. они могут двигаться как по поверхности стола,

так и подпрыгнуть вследствие удара кием под углом к столу или в других ситуациях.

Так же шары могут вылетать за пределы стола.

В процессе движения шары ударяются о другие шары, о борта, о поверхности лузы, падают в лузы.

Реализовать:

быстрое и точное вычисление положения и пространственной ориентации любого шара в любой момент времени после произвольного удара кием;

запись информации о траектории для последуещего воспроизведения в повторе игры или отмены хода;

Скорость вычисления должны быть такой, чтобы можно было в реальном времени показывать траекторию всех шаров, пока пользователь прицеливается и меняет параметры удара.

Язык реализации - C++.

Пишите предлагаемые сроки и цену.