2011-02-04 4 views
1

나는 안드로이드 폰을 위해 자바로 튀는 공을 쓰고있다. 충돌과 반발 계수와 관련된 작은 문제를 제외하면 모든 것이 잘 작동하는 것처럼 보입니다.자바 튀는 공 게임 - 롤링 공 대본

볼이 표면과 충돌하면이 표면의 벡터 법선이 계산되고 (nx 및 ny) 공의 벡터 방향 (dx 및 dy)이이 법선 벡터에 반영됩니다.

지금은 반발 계수로 0.9를 사용하고 있으므로이 값으로 dx와 dy를 곱하면 분명히 너무 단순합니다. 제대로 롤링을 시뮬레이트하지 않습니다.

새로운 dx와 dy를보다 정확하게 계산할 수있는 간단한 공식이 있습니다. 따라서 볼이 충돌 할 때 기울기와 거의 평행하게 움직이는 경우 수직으로 충돌하는 것보다 속도가 떨어집니다.

내 코드를 게시하지 않으신 것에 대해 사과드립니다. 제 컴퓨터에서 멀어져서 나중에 누군가의 이해를 돕기 위해 게시 할 수 있습니다.

사전에 도움을 주셔서 감사합니다.

+1

나는 이것이 가장 적합한 곳인지 모르겠습니다. 수학/물리학 스택 교환이 있다고 생각합니다. –

+0

아마도 GameDev SE입니까? –

답변

2

반발 계수는 충돌하는 물체의 상대적 탄력성과 관련이 있습니다. 공과 표면이 모두 충격에 대해 변형된다는 사실을 설명하는 간단한 방법입니다. 변형의 에너지 중 일부는 손실되지만 (예 : 열, 음파 등) 대부분의 에너지는 다른 몸체를 "밀어내는"단계로 되돌아갑니다.

반발 계수가 1.0이면 아무런 에너지도 손실되지 않습니다. 그것을 "퍼지 요인"이라고 생각하면 역동적 인 탄력성 문제를 해결할 필요가 없습니다.

압연은 또 다른 문제입니다.

반발 계수는 속도의 정상 성분에만 적용되어야한다고 생각합니다. 실제 물리에 더 가까워지기를 원한다면 마찰과 슬라이딩을 접선 구성 요소에 적용해야합니다.

또한 x, y 방향의 변위 이외의 다른 방정식이 필요합니다. 공의 무게 중심에 대해 z 축에 대한 토크에 대해 다른 것이 필요할 것입니다.

뉴턴의 운동 방정식은 x 및 y 방향의 힘과 공의 z 축을 중심으로 한 모멘트를 합산합니다.

0

나는 틀릴 수도 있지만 이것에 대한 해결책은 공 각도 (artan (dy/dx))를 계산하는 것입니다.

원점을 기준으로이 각도를 갖는다면이 각도의 코사인을 곱할 수 있습니다. 완전히 평행하면 속도는 변하지 않고 완전히 수직이면 속도는 0이됩니다.

공이 튀어 나오게하는 최소 속도와 최대 속도가 있는지 확인하려면이 값을 고려해야합니다.

희망이 있습니다.

+0

이것은 매우 단순한 해결책이며 높은 물리학 추상화입니다. – Everton

관련 문제