Tokamak physics engine
Tokamak Game Physics SDK (далее – Tokamak) – физический движок, работающий в режиме реального времени, который распространяется на основе свободной лицензии BSD с открытыми исходными кодами.
Основные функции
правитьСоздание элементов
править- neSimulator
- CreateRigidBody - создание тела, объект класса (neRigidBody)
- neGeometry
- SetBoxSize - задать размеры прямоугольного параллелепипеда
- SetSphereDiameter - задать диаметр сферы
- neRigidBody - тело
- SetRotation(Quaternion) - задать вращение тела через кватернион
- neQ — кватернионы
- Set(ZRotation, ZAxis) - задать кватернион, ZRotation - угол поворота по отношению к оси Z, ZAxis - вектор, задающий ось Z
- neJoint — соединение
- EnableLimit(), SetLowerLimit(), SetUpperLimit() - ограничение на поворот вокруг оси Х
- EnableLimit2(), SetLowerLimit2(), SetUpperLimit2() - ограничение на вращение вокруг своей оси
Документация
правитьИспользование freeglut для визуализации
правитьfreeglut — библиотека утилит для приложений под OpenGL, которая в основном отвечает за системный уровень операций ввода-вывода при работе с операционной системой. Из функций можно привести следующие: создание окна, управление окном, мониторинг за вводом с клавиатуры и событий мыши. Она также включает функции для рисования ряда геометрических примитивов: куб, сфера. С того времени, как оригинальный OpenGL Utility Toolkit (GLUT) прекратил развитие, freeglut начал развиваться с целью улучшения предоставляемого инструментария.
Основные функции
править- glutSolidCube(size) — Рисует куб со сторонами размера size
- glutSolidSphere(radius, slices, stacks) — Рисует сферу радиусом radius. slices - число делений вокруг оси Z (подобно линиям долготы), stacks - число делений вдоль оси Z (подобно линиям широты).
Кватернионы и прочая математика
правитьКватернион, если кратко, есть совокупность скаляра – величина поворота, и вектора – ось, вокруг которой поворот совершается.
- Кватернионы в программировании игр
- Твердое тело, свойства и понятия
- Вращение и кватернионы. Сборник рецептов.
Совмещение векторов
правитьЗадача. Есть два вектора один произвольный, второй ориентирован параллельно оси Ox. Они совмещены центрами. Задача найти матрицу поворотов, которая совмещала (одинаково ориентировала) бы эти два вектора.