Salut,
je cherche les formules mathématiques (ou sources java ou autre)
pour faire deplacer des objets àl l'écran en cercle, spirale et autre
c'est pour un petit shoot em up, j'aimerais avoir differentes trajectoires de missiles sympathiques
merci
Salut,
je cherche les formules mathématiques (ou sources java ou autre)
pour faire deplacer des objets àl l'écran en cercle, spirale et autre
c'est pour un petit shoot em up, j'aimerais avoir differentes trajectoires de missiles sympathiques
merci
http://www.developpez.net/forums/sho...d.php?t=301327
sinon recherche dans le forum algorithmes j'ai fait une réponse à quelqu'un pour dessiner des arcs de cercle.
Connaissant la formule d'un cercle on peut dessiner en tout X et Y
Il faut que tu mitouilles avec des fonctions trigonométriques (cos, sin).
Par exemple pour le cercle :
Après tu peux jouer sur t ou sur le résultat pour obtenir des trucs plus sympas, par exemple la spirale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // t est le temps x = cos(t); y = sin(t);
Tu peux aussi combiner plusieurs sinusoïdes de fréquences différentes pour avoir des trajectoires un peu moins remarquables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 x = t; y = sin(t);
Bref y a de quoi faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 x = cos(t) * 5 + sin(t * 0.3) * 2; y = sin(t) * 7 + cos(t * 0.4) * 1.5;
Tiens essayer de "mitouiller" ce code là dans la même ligner que Laurent
A la place de LineTo et MoveTo dessiner ce que l'on veut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #define TWOPI (2 * 3.14159) void CTestDlgDlg::OnPaint() { CPaintDC dc(this); // device context for painting double angle; double angle2=0; double X,Y; double X_Cercle=100; double Y_Cercle=100; double radius=100; double X0= X_Cercle+(cos (TWOPI * 0) *radius); double Y0= Y_Cercle+(sin (TWOPI * 0) *radius); dc.MoveTo(int(X0),int(Y0)); for(angle=0;angle<360;angle++) { X= X_Cercle+(cos (TWOPI * angle / 360) *radius); Y= Y_Cercle+(sin (TWOPI * angle / 360) *radius); radius--; //X_Cercle++; //dc.MoveTo(int(X),int(Y),RGB(0,0,0)); dc.LineTo (X,Y); }
Un PaintDC en programmation Windows c'est un moyen pour dessiner des lignes à l'écran
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager