Bonjour à tous,
Dans le cadre de mon petit projet graphique perso, j'ai besoin de simuler des déplacements en 3D tenant compte d'une certaine accélération. Seulement voilà, j'utilise SFML, et si je souhaite avoir des déplacements "smooth" réalisés via clavier (ou pas) je dois donc passer par des booléens. Rien de complexe dans tout ça, mais je pense que ma manière de faire est loin d'être la plus optimale.
Par exemple, j'aurais tendance à pondre un code comme suivant :
Donc voilà l'idée en fait... Comme ça, on a quelque chose qui peut marcher, mais il est certainement envisageable de faire plus optimal (un code moins lourd à écrire). j'imagine bien une ou deux autres méthodes possibles, mais dans le doute, je préfère m'orienter vers vous, qui avez certainement plus d'expérience que moi en développement & algorithmique et/ou simplement une meilleure idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Pour résumer, un algorithme qui, en fonction de simples booléens dans les 3 dimension d'un espace euclidien ( x2 pour les inverse aussi), tenant compte d'accélérations et décélérations différentes pour chacun des axes, me fourni en sortie un vecteur vitesse.
Précision complémentaire : oui, si l'objet est déjà en mouvement, le simple fait de stopper tout mouvement (en gros passer tout les booléens à 0) induit une décélération (liée à l'inertie de l'objet).
Merci d'avance pour vos retours ! Si le sujet n'est pas clair ou que vous avez besoin de plus d'infos, n'hésitez pas à me demander.

 

 
		
		 
         
 

 
			
			

 
			 
   
 


 algorithme pour translation "smooth"
 algorithme pour translation "smooth"
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
			 
  
 
				 ) pour représenter  l'accélération et la décélération, étant entedu que l'on peut accélérer sur un axe et décélérer sur un autre
) pour représenter  l'accélération et la décélération, étant entedu que l'on peut accélérer sur un axe et décélérer sur un autre ) mais chaque valeur de X, de Y et de Z peut être combinée avec n'importe quelle valeur des deux autres axes
) mais chaque valeur de X, de Y et de Z peut être combinée avec n'importe quelle valeur des deux autres axes  )
 ) A méditer: La solution la plus simple est toujours la moins compliquée
A méditer: La solution la plus simple est toujours la moins compliquée Envoyé par BioKore
 Envoyé par BioKore
					





 
 
 
 
Partager