조인트란 두 바디 사이를 연결하는 객체입니다. 연결하는 방식에 따라 다양한 종류의 조인트가 있는데 박스2D에서는 다음과 같이 10개의 조인트를 제공하고 있습니다.
종류 | 설명 |
마우스 조인트 Mouse Joint | 마우스로 화면을 클릭하면 이 클릭한 위치와 바디를 연결해 주는 조인트이다. 박스2D에서 바디를 드래그&드롭할 때 주로 사용된다.
|
리볼류트 조인트 Revoute Joint | 두 바디 사이를 볼트 형태로 연결한다. 괘종시계의 시계 추와 같은 진자 운동을 표현할 수 있다. |
웰드 조인트 Weld Joint | 두 바디 사이를 용접하듯이 붙인다. |
프리스마틱 조인트 Prismatic Joint | 두 바디 사이를 주어진 직선 방향으로만 이동할 수 있도록 연결한다. 피스톤 운동이나, 엘리베이터처럼 주어진 방향으로만 이동이 가능하다. |
디스턴스 조인트 Distance Joint | 두 바디 사이의 거리를 일정하게 유지하는 연결이다. 두 바디 사이의 연결에 단단한 철봉을 사용한 것이라고 생각할 수 있다. 두 연결 사이의 거리가 항상 일정하고 변하지 않는다. |
로프 조인트 Repe Joint | 디스턴스 조인트와 유사하게 서로 거리를 유지하는 용도이지만 두 바디 사이의 연결에 고무줄을 사용한 것이라고 생각할 수 있다. 두 연결 사이의 거리가 줄어든다. |
프릭션 조인트 Friction Joint | 디스턴스 조인트와 유사하게 서로 거리를 유지하는 용도이지만 두 바디 사이의 연결에 고무줄을 사용한 것이라고 생각할 수 있다. 두 연결 사이의 거리가 늘어난다. |
풀리 조인트 Pulley Joint | 도드레 조인트로 두 바디 사이의 힘의 균형에 따라 움직인다. |
기어 조인트 Gear Joint | 톱니바퀴가 서로 연결되어 있는 것처럼 동작한다. |
휠 조인트 Wheel Joint | 자동차 바퀴처럼 원 운동을 하는 것처럼 동작한다. |
[ 추가 설명 ]
조인트를 쉽게 이해하려면 다음의 예를 보겠습니다.
팔은 팔꿈치를 기준으로 위 아래로 나눌 수 있습니다.
이렇게 두개의 바디(물리 오브젝트)를 연결하는 팔꿈치는 조인트라고 볼 수 있습니다.
그리고 조인트를 기준으로 물리적 운동의 제한이 걸립니다.
접힐때에도 완전히 접히지 않지만 펴질 때에도 180도 이상 펴져서 일자로 펴지는 것 이상 넘어가지 않습니다.
(부러졌을 경우를 제외하고...)
이런 경우에 Box2D에서는 리미트란 용어를 사용합니다.
이번엔 시침, 분침, 초침이 있고 시계추가 있는 벽시계를 예로 보겠습니다.
시침, 분침, 초침을 시계에 연결하는 중심점은 조인트라고 볼 수 있습니다.
처음에 정지해 있는 시계에 건전지를 끼웁니다. 그러면 시계가 돌아가기 시작합니다.
이럴 경우 Box2D에서는 모터를 enable 시켰다란 용어를 사용합니다.
시계의 시침, 분침, 시침은 일정하게 돌아갑니다.
이때 Box2D에서는 토크, 즉 회전력은 일정하다고 말합니다.
그러나 자동차의 경우 엑셀을 밟으면 토크, 즉 회전력은 증가하게 됩니다.
즉 토크가 증가하면 회전력이 증가하고 회전의 속도가 빨라지게 됩니다.