2010-10-15 5 views
8

Capisco cosa significa sin e cos (e alcune altre funzioni trigonometriche), ma non capisco veramente quale tipo di problemi risolvono. Puoi mostrarmi alcuni esempi del mondo reale quando userai alcune di queste funzioni nello sviluppo di giochi (in particolare nello sviluppo di giochi 3D)?Trigonometria e sviluppo del gioco

Grazie.

+2

Questa è davvero una domanda più adatta per GameDev StackExchange (http://gamedev.stackexchange.com/), ma qui c'è un collegamento che potrebbe essere utile nella ricerca: http://pixwiki.bafsoft.com/ riviste/5/articoli/cerchia/sincos.htm –

+0

Ti dirò comunque. In Unity/UDK e in altri motori di gioco, sin, cos e funzioni matematiche come quella eseguita in tempo reale sono le più costose in termini di risorse. Soprattutto per lo sviluppo di giochi mobili.Ho imparato attraverso più risorse per lasciare quelle chiamate al minimo a causa del COSTO! Ovviamente richiama le chiamate e le poligie le superano, ma le funzioni matematiche sono un secondo vicino. – ApolloSoftware

risposta

11

Nello sviluppo del gioco, ci sono molte situazioni in cui è necessario utilizzare le funzioni trigonometriche. Quando si programma un gioco, spesso devi fare cose come trovare la distanza tra due punti o fare muovere un oggetto. Ecco alcuni esempi:

  • Rotazione di una navicella spaziale o altro veicolo

  • correttamente gestire la traiettoria dei proiettili sparati da un'arma ruotata

  • Calcolo una nuova traiettoria dopo una collisione tra due oggetti come palle da biliardo o teste

  • Determinare se si verifica una collisione tra due oggetti

  • Trovare l'angolo di traiettoria (data la velocità di un oggetto nella direzione X e Y)

Ecco un buon collegamento different areas of Math required in various types of video game development.

Vedi questi link per ulteriori letture:

1

Bene, un'applicazione che mi viene in mente immediatamente, è per gli effetti speciali nel gioco ... diciamo che hai un'arma o magia o abilità, o un effetto di qualche tipo, che fa un raggio di luce ... puoi giocare con la matematica per "modellare quel raggio" ...

Allo stesso modo, diciamo che hai un portale che desideri riprodurre delle animazioni nitide all'attivazione o all'entrata, puoi giocare con i vettori e le matrici di rotazione, e puoi fare un sacco di cose incredibili con un mix di matematica e immaginazione ...

3

I giochi nello spazio 2D o 3D richiedono geometrie per la grafica. I motori fisici per la modellazione del movimento richiedono fedelmente la geometria. Trig è fondamentale per la geometria.

Prendere qualcosa di semplice come rimbalzare. La fisica di un proiettile colpendo e murando e rimbalzando ti convincerà rapidamente dell'utilità delle funzioni trigonometriche.

5

I modelli 3D sono definiti da vertici (elenchi numerici di coppie di coordinate o terzine nello spazio 3D) e linee che li connettono. Queste linee creano superfici che possono essere renderizzate, illuminate, testurizzate, ecc.

Per poter dire, ruotare un oggetto, devi essere in grado di manipolare quei vertici. Se vuoi ruotare un oggetto di un certo numero di gradi o radianti, avrai a disposizione tonnellate di funzioni trigonometriche per capire dove finisce.

Il trigge di base è fondamentale per QUALSIASI manipolazione 3D richiesta per giochi, simulazioni, ecc. Vale la pena dedicare tempo per indagare e acquisire familiarità con il significato reale se tali funzioni, i loro limiti e il modo in cui si applicano e amplificano l'utilità della geometria , elaborazione dei segnali, ecc.

Questa è una grande domanda; solo annuire e comportarsi come se fosse ovvio. A meno che il tuo nome non sia Blaise o Renee, probabilmente no.

3

trigonometria è fondamentale per produrre quasi tutte le curve (come in dalle ellissi o cerchi) e quindi ha un sacco di utilizzo nello sviluppo del gioco. Inoltre, l'onda sinusoidale è utile per il rumore di Perlin e molti altri effetti speciali.

3

Un esempio sono utilizzati funzioni trigonometriche è in matrici di rotazione

Ad esempio

Questa matrice è utilizzato per ruotare un punto nel piano x, y attorno all'origine.

|x'| = | cos a -sin a | | x | 
|y'| | sin a  cos a | | y | 
  • x, y punti originali
  • x 'y' tradotti punti
  • un angolo di rotazione in senso antiorario
7

L'uso più evidente di trigonometria è quello di ottenere un oggetto per muoversi in qualsiasi direzione data, senza trigonometria questo è impossibile.

//Example code, will move the object speed units in the given direction (degrees) 
d2r = pi/180; //Conversion from degrees to radians 
this.x += speed * cos (direction * d2r); 
this.y += speed *-sin (direction * d2r); 

E 'anche usato per altre cose, come ad esempio:

  • Esecuzione di trasformazioni su sprite 2d per creare la rotazione.
  • Viene utilizzato molto estesamente nella proiezione di una vista 3D.
  • A causa della forma di un'onda sinusoidale può essere utilizzato per creare transizioni uniformi tra 2 valori.
  • Creazione di onde sinusoidali a scopo di sintesi audio.
  • Disegno di oggetti circolari come cerchi e sfere.
  • Determinazione della posizione di un punto che si trova sul braccio di un perno.
3

Scrivere un programma che disegna e aggiorna un orologio analogico.

I problemi che si incontrano nel farlo dovrebbero darti la risposta alla tua domanda. Se hai una comprensione di base del peccato e del cos, dovresti essere in grado di usarli per rendere il disegno dell'orologio piuttosto facile.

Se questo non ti dà la risposta, prova a disegnarla senza peccato e cos.