Бильярд на Qt
Итак... В честь дня космонавтики и по совместительству дня факультета в нашем университете у меня был отличный шанс выиграть немного денег и заодно поучавствовать в конкурсе физических моделистов... Одним из заданий было написать бильярд на Qt (ну на Qt это я уже приукрасил =) У меня получилось следующее.
Рассматривать математико-физическую модель с формулами увы нет настроения, выделю только ключевые моменты:
- Все удары кием по шарику центральные, шарик по шарику - как получится, тоесть, более реалистично.
- Введено трение об стол.
- При взаимодействиях между шариками и шарик/стенка енергия тоже теряется
- Использован принцип "очереди" (тоесть наперед просчитаны траектории до соударений)
- Управление с помощью мыши - зажать левую кнопку и ударить.
- Скорость удара зависит от скорости передвижения указателя мыши.
- Скорости после соударений рассчитываются согласно законам сохранения.
- Ведется счет (очень примитивно, спешил ведь =))
Не судите строго, упор был сделан на физику, не на красоту, время написания - ограничено; физический движок - более-менее реалистичен (не считая нецентрального удара кием), графика - на qwtplot.
Если кто-то что-то перепишет/использует - буду только рад) Также буду рад, если вы меня об этом известите.
Выглядит это так:
Qt проект: billiard (qwt сконфигурирован под linux)