문제

Java, Cube 및 구체에 매우 간단한 3D 물리 시뮬레이터를 작성해야합니다. 나는 그런 일을 한 적이 없습니다. 어디서부터 시작해야합니까? 어떻게 수행되는지에 대한 문서가 있습니까? 내가 재사용 할 수있는 라이브러리가 있습니까?

도움이 되었습니까?

해결책

다른 팁

방법을 시작하고 싶다고 가정하면 시작하는 가장 좋은 방법은 펜과 종이입니다. 앱의 초점을 정의하기 시작합니다 (Entities Sphere, Cube 등, 중력, 충돌 등과 같은 규칙, 객체의 계층 구조 등)

이 작업을 수행하는 방법을 알고 기술 측면의 입문서를 원한다면 Swing은 Java에서 UIS를 만드는 좋은 옵션입니다.

또한 여기를 살펴보십시오. http://www.myphysicslab.com/

Nehe의 레슨 39는 좋은 출발점이며 C ++이지만 이론은 이해하기 쉽습니다.

멋진 Java Physics Library는 Jmephysics입니다 (http://www.jmonkeyengine.com/jmeforum/index.php?topic=6459); 사용하기 쉽고 ODE 위에 앉아 있습니다 (http://www.ode.org/) 및 JmonkeyEngine (http://www.jmonkeyengine.com) 당신에게 scenegraph를 제공합니다 (http://en.wikipedia.org/wiki/scene_graph), 매우 간단한 3D 애플리케이션 이외의 것에 필요한 것은 무엇입니까?

나는 그것을 한동안 사용하지 않았으며, 그들이 2007 년 말부터 출시되지 않았기 때문에 커뮤니티가 얼마나 활동적인지 확실하지 않습니다.

물리적 물체에 대한 수업을 먼저 정의하는 것은 어떻습니까? 위치, 속도, 질량 및 아마도 모양, 탄성 등과 같은 다른 기능을 갖춘 서브 클래스가 있습니다.

그런 다음 이러한 물리적 물체를 배치 할 수있는 우주 (클래스)를 만듭니다. 재미있는 것 같네요 :)

시뮬레이션해야 할 모든 것이 구체/원과 큐브 만 있으면 약간의 벡터 수학 만 있으면됩니다.

예를 들어 간단한 풀 게임을 시뮬레이션하려면 각 공 (구)은 위치, 3D 선형 속도 및 3D 선형 가속도 벡터를 갖습니다. 시뮬레이션에는 각각의 모든 공을 지속적으로 업데이트하는 많은 작은 프레임이 포함됩니다. 두 개 이상의 공이 충돌하면 벡터를 합산하고 모든 공의 새로운 속도를 계산합니다. 예를 들어 공이 벽에 부딪히면 공의 표시를 뒤집어 다시 튀어 오르는 것입니다 ...

자신의 물리 엔진을 코딩하는 것을 의미하는 즉시 처음 부터이 작업을 수행하려면이를 달성하기 위해 수학의 내부를 알아야합니다. 상당히 좋은 수학 배경을 가지고 있다면 헤드 스타트가있을 것입니다. 그렇지 않으면 가파른 학습 곡선이 앞서 있습니다.

이 커뮤니티 포럼에서 시작하여 작업 수행 방법에 대한 정보를 수집 할 수 있습니다.gamedev.net

물론 당신은 오픈 소스 엔진을 사용할 수 있습니다 오그레 자신의 코딩을 원하지 않는다면.

Bulletphysics를 확인하십시오. Bullphysics.com 포럼 또는 Sourceforge의 프로젝트를 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top