Основная статья: Физические движки

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. Они совмещены центрами. Задача найти матрицу поворотов, которая совмещала (одинаково ориентировала) бы эти два вектора.


См. также править

Примеры использования править