2009-09-20 9 views
2

J'essaie de mieux comprendre ce que fait exactement ce code. Il est écrit en Objective-C, mais devrait être familier à quiconque ayant un arrière-plan C. Que font exactement les mathématiques sin/cos ici? Aussi, quelqu'un a-t-il une bonne recommandation pour apprendre des concepts de jeu tels que ceux-ci?Logique mathématique (trig) de base dans un jeu, que fait ce code?

for (int i = 0; i < GAME_CIRCLES; i++) 
{ 
    point.x = center.x - sin (degree) * RADIUS; 
    point.y = center.y + cos (degree) * RADIUS; 
    mPieRect[i] = CGRectMakeWithCenter (point, RADIUS - 4); 
    degree += PI/3.0; 
} 

Répondre

7

C'est l'équation paramétrique pour un cercle (voir wikipedia)

Je vais deviner que la variable « degré » est en fait dans radians plutôt que degrés bien. Il y a 360 degrés dans un cercle, ou 2 * Pi radians. En avançant la variable degré par Pi/3, il contourne 1/6 de cercle

+0

Merci Paul! Logique. Question rapide cependant, comment les coordonnées x/y sont-elles comprises, qu'est-ce que exactement center.x - sin (degree) * RADIUS et la ligne qui suit? – randombits

+0

qui calcule la position à partir du point central à l'angle «degré» et le rayon «rayon». Si vous deviez boucler le degré de 0 ... 2PI par petits incréments et tracer les points qui en résultent, vous obtiendriez un cercle. –

+0

En outre, je suppose que GAME_CIRCLES est 6 pour faire le tour de la boucle autour de 6 points d'un hexagone, et donc il stocke un rectangle centré sur chaque point dans le tableau mPieRect. –

Questions connexes