Domanda

Devo scrivere un semplicissimo simulatore di fisica 3D in Java, cubo e sfere che si urtano l'un l'altro, non molto di più. Non ho mai fatto niente del genere, da dove dovrei iniziare? Qualche documentazione su come viene eseguita? eventuali librerie che potrei riutilizzare?

È stato utile?

Altri suggerimenti

Supponendo che tu voglia iniziare su come farlo, il modo migliore per iniziare è con carta e penna. Inizia a definire i punti focali della tua app (come la sfera delle entità, il cubo ecc., Le regole come la gravità, la collisione ecc., Decidi la gerarchia degli oggetti ecc.)

Se sai come fare e desideri un primer dal punto di vista tecnologico, Swing è una buona opzione per creare interfacce utente in Java.

Dai un'occhiata anche qui: http://www.myphysicslab.com/

La lezione 39 di NeHe è un buon punto di partenza, è in C ++ ma la teoria è abbastanza facile da capire.

Una bella libreria di fisica java è jmephysics ( http: //www.jmonkeyengine ? .com / jmeforum / index.php topic = 6459 ); è abbastanza facile da usare e si trova in cima a ODE ( http://www.ode.org/ ) e jmonkeyengine ( http://www.jmonkeyengine.com ) che ti offre uno scenario ( http://en.wikipedia.org/wiki/Scene_graph ), ancora una volta qualcosa di cui avrai bisogno per qualsiasi cosa oltre una semplice applicazione 3d.

Non lo uso da un po 'di tempo, e vedo che non sono stati pubblicati dalla fine del 2007, quindi non sono sicuro di quanto sia attiva la community adesso.

Che ne dici di definire una classe per l'oggetto fisico? Ha posizione, velocità, massa e forse sottoclassi con altre caratteristiche come forma, elasticità ecc.

Quindi crea un universo (classe) dove posizionare questi oggetti fisici. Sembra divertente :)

Se tutto ciò che serve per simulare sono sfere / cerchi e cubi, tutto ciò che serve è un po 'di matematica vettoriale.

Ad esempio, per simulare un semplice gioco di biliardo ogni palla (sfera) avrebbe una posizione, una velocità lineare 3d e un vettore di accelerazione lineare 3d. La tua simulazione coinvolgerebbe molti piccoli frame che aggiornano continuamente ogni palla. Se due o più sfere si scontrano, è sufficiente sommare i vettori e calcolare le nuove velocità per tutte le palle. Se una palla colpisce un muro, ad esempio, tutto ciò che serve è capovolgere il segno della palla per farla rimbalzare indietro ...

Se vuoi farlo da zero, ovvero codificare il tuo motore fisico, dovrai conoscere i dettagli della matematica dietro per raggiungere questo obiettivo. Se hai un background matematico abbastanza buono avrai un vantaggio, altrimenti è in arrivo una curva di apprendimento ripida.

Puoi iniziare su questo forum della community per raccogliere informazioni su come vengono fatte le cose: gamedev.net

Ovviamente potresti usare un motore opensource come Ogre se non vuoi codificare il tuo.

Dai un'occhiata alla bulletphysics. bulletphysics.com è il forum o controlla il progetto su Sourceforge .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top