Основные понятия объектов физического мира — различия между версиями
Echornaya (обсуждение | вклад) (Новая страница: «Для создания физических объектов в редакторе используется движок Box2D. Box2D — компьютерна...») |
Aslav (обсуждение | вклад) м |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 10: | Строка 10: | ||
− | == '''Основные понятия | + | == '''Основные понятия''' == |
− | |||
− | '''Фигура (shape)''' | + | *'''Мир (world)''' |
+ | Физический мир включает в себя все тела (bodies), крепления (fixtures) и ограничения (constraints), которые взаимодействуют друг с другом. Box2D поддерживает создание нескольких миров, но обычно в этом нет необходимости или это нежелательно. | ||
+ | |||
+ | *'''Фигура (shape)''' | ||
Плоская геометрическая фигура, такая как окружность (circle) или многоугольник (polygon). | Плоская геометрическая фигура, такая как окружность (circle) или многоугольник (polygon). | ||
− | '''Твердое тело (rigid body)''' | + | *'''Твердое тело (rigid body)''' |
Предмет, состоящий из материала настолько прочного, что расстояние между любыми двумя точками этого предмета является постоянным при любых условиях. Предмет, прочный как алмаз. В дальнейшем, для удобства, мы будем использовать термин «тело» (body), вместо «твердое тело» (rigid body). | Предмет, состоящий из материала настолько прочного, что расстояние между любыми двумя точками этого предмета является постоянным при любых условиях. Предмет, прочный как алмаз. В дальнейшем, для удобства, мы будем использовать термин «тело» (body), вместо «твердое тело» (rigid body). | ||
− | '''Крепление (fixture)''' | + | *'''Крепление (fixture)''' |
«Крепление» привязывает фигуру (shape) к телу (body) и добавляет свойства материала, такие как: плотность (density), трение (friction) и упругость (restitution). | «Крепление» привязывает фигуру (shape) к телу (body) и добавляет свойства материала, такие как: плотность (density), трение (friction) и упругость (restitution). | ||
− | '''Ограничение (constraint)''' | + | *'''Ограничение (constraint)''' |
«Ограничение» – это физическая привязка, которая ограничивает свободу перемещения и/или вращения тел. На плоскости тело имеет 3 степени свободы (движение по вертикали и горизонтали, и вращение). Если мы возьмем тело и прикрепим его булавкой к стене, то мы ограничим движения тела стеной. В данном случае тело сможет только вращаться вокруг булавки, таким образом «ограничение» удалило 2 степени свободы тела. | «Ограничение» – это физическая привязка, которая ограничивает свободу перемещения и/или вращения тел. На плоскости тело имеет 3 степени свободы (движение по вертикали и горизонтали, и вращение). Если мы возьмем тело и прикрепим его булавкой к стене, то мы ограничим движения тела стеной. В данном случае тело сможет только вращаться вокруг булавки, таким образом «ограничение» удалило 2 степени свободы тела. | ||
− | '''Контактное ограничение (contact constraint)''' | + | *'''Контактное ограничение (contact constraint)''' |
Специальное «ограничение», предназначенное для предотвращения проникновения твердых тел друг в друга, а также моделирования трения и упругости. Вам не придется создавать такие ограничения; они создаются Box2D автоматически. | Специальное «ограничение», предназначенное для предотвращения проникновения твердых тел друг в друга, а также моделирования трения и упругости. Вам не придется создавать такие ограничения; они создаются Box2D автоматически. | ||
− | '''Соединение (joint)''' | + | *'''Соединение (joint)''' |
«Соединение» используется для скрепления вместе двух и более тел. Box2D поддерживает несколько типов соединений: «болтовое» (revolute), «призматическое» (prismatic), «жесткий отрезок» (distance), и другие. Некоторые соединения могут иметь ограничители (limits) и мускулы (motors). | «Соединение» используется для скрепления вместе двух и более тел. Box2D поддерживает несколько типов соединений: «болтовое» (revolute), «призматическое» (prismatic), «жесткий отрезок» (distance), и другие. Некоторые соединения могут иметь ограничители (limits) и мускулы (motors). | ||
− | '''Ограничитель соединения (joint limit)''' | + | *'''Ограничитель соединения (joint limit)''' |
«Ограничитель соединения» устанавливает диапазон движения соединения. Например, человеческое колено или локоть могут двигаться только в определенном диапазоне углов. | «Ограничитель соединения» устанавливает диапазон движения соединения. Например, человеческое колено или локоть могут двигаться только в определенном диапазоне углов. | ||
− | '''Мускул соединения (joint motor)''' | + | *'''Мускул соединения (joint motor)''' |
«Мускул соединения» управляет движением соединенных тел согласно степеням свободы соединения. Например, вы можете использовать мускул, чтобы управлять вращением колена. | «Мускул соединения» управляет движением соединенных тел согласно степеням свободы соединения. Например, вы можете использовать мускул, чтобы управлять вращением колена. | ||
− | ''' | + | *'''Солвер (solver)''' |
− | + | В физическом мире Box2D есть солвер (или «решатель», дополнительно см. http://www.gamedev.ru/code/terms/Solver - прим. перев. tigrojop), который используется для времени продвижения (advance time) и для разрешения контактов и совместных ограничений (joint constraints). Солвер Box2D является высокопроизводительным итеративным солвером, который отрабатывает порядка N раз, где N равно количеству ограничений (constraints). | |
− | ''' | + | == '''Примеры использования''' == |
− | + | ||
+ | |||
+ | [[Category:Physicsworld]] |
Текущая версия на 09:40, 16 сентября 2014
Для создания физических объектов в редакторе используется движок Box2D. Box2D — компьютерная программа, свободный открытый физический движок. Box2D является физическим движком реального времени и предназначен для работы с двухмерными физическими объектами. Полная документация по движку Box2D:
на английском (оригинал): http://box2d.org/manual.html
на русском (перевод имеет неточности и не полный) https://docs.google.com/document/pub?id=1taHWCfoCFFwdn0itFXSS5lKoHKebx4Z-27yZJ6vVACc
Основные понятия
- Мир (world)
Физический мир включает в себя все тела (bodies), крепления (fixtures) и ограничения (constraints), которые взаимодействуют друг с другом. Box2D поддерживает создание нескольких миров, но обычно в этом нет необходимости или это нежелательно.
- Фигура (shape)
Плоская геометрическая фигура, такая как окружность (circle) или многоугольник (polygon).
- Твердое тело (rigid body)
Предмет, состоящий из материала настолько прочного, что расстояние между любыми двумя точками этого предмета является постоянным при любых условиях. Предмет, прочный как алмаз. В дальнейшем, для удобства, мы будем использовать термин «тело» (body), вместо «твердое тело» (rigid body).
- Крепление (fixture)
«Крепление» привязывает фигуру (shape) к телу (body) и добавляет свойства материала, такие как: плотность (density), трение (friction) и упругость (restitution).
- Ограничение (constraint)
«Ограничение» – это физическая привязка, которая ограничивает свободу перемещения и/или вращения тел. На плоскости тело имеет 3 степени свободы (движение по вертикали и горизонтали, и вращение). Если мы возьмем тело и прикрепим его булавкой к стене, то мы ограничим движения тела стеной. В данном случае тело сможет только вращаться вокруг булавки, таким образом «ограничение» удалило 2 степени свободы тела.
- Контактное ограничение (contact constraint)
Специальное «ограничение», предназначенное для предотвращения проникновения твердых тел друг в друга, а также моделирования трения и упругости. Вам не придется создавать такие ограничения; они создаются Box2D автоматически.
- Соединение (joint)
«Соединение» используется для скрепления вместе двух и более тел. Box2D поддерживает несколько типов соединений: «болтовое» (revolute), «призматическое» (prismatic), «жесткий отрезок» (distance), и другие. Некоторые соединения могут иметь ограничители (limits) и мускулы (motors).
- Ограничитель соединения (joint limit)
«Ограничитель соединения» устанавливает диапазон движения соединения. Например, человеческое колено или локоть могут двигаться только в определенном диапазоне углов.
- Мускул соединения (joint motor)
«Мускул соединения» управляет движением соединенных тел согласно степеням свободы соединения. Например, вы можете использовать мускул, чтобы управлять вращением колена.
- Солвер (solver)
В физическом мире Box2D есть солвер (или «решатель», дополнительно см. http://www.gamedev.ru/code/terms/Solver - прим. перев. tigrojop), который используется для времени продвижения (advance time) и для разрешения контактов и совместных ограничений (joint constraints). Солвер Box2D является высокопроизводительным итеративным солвером, который отрабатывает порядка N раз, где N равно количеству ограничений (constraints).