2017-04-15 2 views
0

정확한 중심점을 가진 몸체에 body.applytorque(float torque, boolean wake) 메서드를 사용하여 각속도를 가속하는 방법을 알아 내려고합니다. 각도 가속도를 1 초당 각도로 적용하고 싶습니다.
libGDX 문서에 따르면 torque 매개 변수는 Newton-meters를 사용합니다. 몸에deg/sec²의 applyTorque() 사용 - Box2D

= I α 
where :torque[N-m], I:mass moment of inertia, α:acceleration 

: 그것을 설정하려면, 나는 공식을 사용합니다

// java 
float acceleration = 120f; // deg/s² 
float inertia = body.getInertia(); 
body.applyTorque(inertia * (float)Math.toRadians(acceleration), true); 

그러나 이것은 질량 잘못 가속, 같은 일에 이어집니다.

해당 방법의 올바른 사용법은 deg/s²입니까?

+0

각도는 각력 (토크)이 아니라 각속도입니다. 질량을 일정한 각속도로 회전 시키려고합니까? 얼마나 빨리 그 속도로 가속하고 싶습니까? –

+0

@DavidJeske [편집 : "도/초/초]" 질량은 일정한 가속으로 회전해야합니다. 요금은 120deg/s²입니다. (최종 일정 각속도는 필요하지 않습니다.) – Dave

+0

해결하려는 내용을 명확히 설명하십시오. 새 각도 위치로 돌리는 것처럼 몸체를 회전하려고합니까? 아니면 몸의 회전 속도를 바꾸려고하십니까? 귀하의 제목은 귀하의 첫 번째 문장은 전자를 제안하는 동안 나에게 후자를 제안합니다. –

답변

0

해상도 : 문제는 내가 사용했던 세계적인 편집기 UI에서 왔습니다. - 겹쳐 쓰기 2D.

수정 방법 : applytorque (...)에서 토크를 2로 곱하십시오.

내가 언급 한 방법은 위의 예에서 올바르게 사용되었으며 수식도 올바르게 사용되었습니다.
Overlap2D 소프트웨어를 사용하면 원하는 모든 바디를 장면에 배치 할 수 있습니다. 그런 다음 프로그램에서 신체와 자산을로드하면 전 세계를 직접로드합니다. ashley가 제공하는 편의 클래스 (예 : IteratingSystem)를 사용하여 각 렌더링에서 모든 개체의 동작을 직접 계산합니다. 이 처리가 힘 또는 적어도 토크에 영향을줍니다. 그러나 나는 각 각의 충격에 문제가 없었습니다.

나를 안내 한 David Jeske와 Louis Langholtz에게 감사드립니다.