begin process at 2012 05 30 08:33:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

[SDL]Comment faire tourner un objet selon un axe de rotation ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[SDL]Comment faire tourner un objet selon un axe de rotation ?

samedi 7 août 2004 à 21:57:04 | [SDL]Comment faire tourner un objet selon un axe de rotation ?

forumti

Bonjour,
je souhaiterai créer un compteur (de voiture). seulement, je ne sais pas comment faire pour faire tourner l'aiguille...
est-ce que vous auriez une idée ? merci

ps : je développe uniquement sous linux. je vous prierai donc de ne pas faire intervenir des fonctions spécifiques à windows ;)

Webmaster de www.forum-ti.fr.st
samedi 7 août 2004 à 23:29:31 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

MadM@tt

Membre Club
Salut,
je n'ai aucune notion en C++ mais je peut déjà te donner une solution (sans exemple)
Il faut se servir des Cosinus et Sinus pour tracer ton aiguille.
Déjà il faut convertir ta vitesse en angle.
Si tu veut que sur ton compteur ça aille de 0 à 200, alors tu fait 200/360 et ensuite pour obtenir l'angle, tu calcule Angle = (200/360)*Vitesse.
Bien sur la sur ton compteur le sens sera contraire aux aiguilles d'une montre et il commencera à l'horizontale à droite (si tu me suis toujours). Donc il faut déjà décaler l'endroit de début, donc à ton angle tu lui enlève 90°
Angle=Angle-90°
Puis il faut inverser le sens :
Angle=0-Angle

Ensuite quand tu voudras dessiner ton compteur, il faut dessiner la ligne en utilisant ces coordonées :
X1 = CentreX
Y1 = CentreY
X2 = CentreX + Cos(Angle) * Taille_Aiguille
Y2 = CentreY + Sin(Angle) * Taille_Aiguille
donc tu obtient 2 points que tu relie par une ligne (je répète je ne sais pas faire ;-)
Attention : Si dans la fonction cosinus et sinus il faut envoyer des angles en radians, alors il faut le convertir avant avec :
Angle = Angle * Pi / 180
Pi est environ de 3.1415926 (je connais pas + de décimales de tete).

Il y a encore beaucoup d'améliorations à faire, mais t'inquiète tu y arrivera, par exemple pour que l'aiguille ne parte pas a la verticale, tu peut lui retirer quelques degré :
Angle = Angle - 10

Mais bon tu t'en sortira très bien ;-)
J'espère t'avoir été utile.

@ ++
MadMatt
samedi 7 août 2004 à 23:47:19 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

dletozeun

Je pense que tu t's trompé MadM@att :

Pour convertir la vitesse en angle avec un compteur allant de 0 a 200 il faut faire:
(vitesse*360)/200 (produit en croix)

pour le reste c bon mais moi je mettrais des parenthèses pour:

angle=(angle*Pi)/180 pour eviter les ambiguités...
samedi 7 août 2004 à 23:49:50 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

MadM@tt

Membre Club
Autant pour moi...

Si ça vous interesse je suis en train de faire cette source en Visual Basic et elle sera surement sur vbfrance ce soir ou demain, donc si ceux que ça interesse sont près à déchiffrer le VB faites-y un tour.

@ ++
MadMatt
lundi 9 août 2004 à 13:38:29 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

forumti

ok, j'ai mis en place le calcul des coordonnées selon l'angle.
mais quelqu'un sait-il tracer une ligne ?
ce serait certainnement beaucoup plus simple que de calculer la fonction affine à partir des deux coordonnées puis de tracer point par point.
merci à ceux qui pourront à nouveau m'aider...

Webmaster de www.forum-ti.fr.st
lundi 9 août 2004 à 20:54:46 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

forumti

tant pis pour la ligne, je fais point par point.
mais j'ai un problème...
pour voir mes sources : trace.c
trace.h
vu.bmp
prog compilé
si vous voulez compiler, il faut tout mettre dans le même répertoire ;)

j'ai un problème avec mon aiguille : elle n'est pas au bon endroit ! dans le prog compilé, je lui demande d'être à 10° mais elle est horizontale !
si quelqu'un peut m'aider...
merci

Webmaster de www.forum-ti.fr.st
mardi 10 août 2004 à 18:48:04 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

dletozeun

moi j'arrive pas a telecharger tes sources...se serait possible que tu mettes sur le forum juste l'algorithme de tracé de lignes que tu as fait?

Et pis SDL c'est bien ca que tu utilises? Il doit doit bien y avoir une fonction de tracé de lignes....
mercredi 11 août 2004 à 19:13:32 | Re : [SDL]Comment faire tourner un objet selon un axe de rotation ?

forumti

justement ! il n'y a aucune fonction qui permette de tracer une ligne ! (je ne l'ai pas trouvée du moins). j'ai finalement réussi à tracer une ligne correctement :) j'ai utilisé l'algo de Bresenham et voilà :p
merci à vous de m'avoir aidé

pour les sources, c'est mon hébergeur qui délire en ce moment

Webmaster de www.forum-ti.fr.st


Cette discussion est classée dans : objet, rotation, axe, sdl, tourner


Répondre à ce message

Sujets en rapport avec ce message

pb tansparence et rotation [ par jopop ] J'ai créé deux objets contenant des parties transparentes (alpha blending) que je paux faire tourner autours d'un axe à l'aide de la souris. La premiè [SDL] Rotation de sprite [ par kojiro2 ] Coucou tout le monde, je veux faire tourner un sprite sur lui meme c'est a dire que ce sprite tourne entre 0° et 360°.Le pb c'est que j'utilise une co [débutant] Axe de rotation caméra [ par Bornibus ] Bonjour, Actuellement sur un (petit) jeu de stratégie qui se déroule sur un damier (imaginez-vous un jeu d'échec), je désirerai change Problème : rotation d'une camera [ par bathof ] Bonjour,Je suis en train de développer un jeu 3D de type HomeWorld2,malheureusement j'ai deux trois problèmes du coté de la camera.La caméra doit être Calculer matrice rotation, axe quelconque [ par poiuytrez3 ] Bonjour,je suis en train de faire un petit moteur 3D de A à Z.J'aimerai bien calculer un matrice rotation à partir de n'importe quel axe. Je sais déjà moteur physique [ par Jackyzgood ] Bonjour à tous ! J'essaye actuellement de créer une fonction qui me gère des trajectoires simple dans un champ de pesanteur avec rebond. Mon problème SOS rotation en opengl [ par popil ] je suis en train de faire un tetris en C avec une interface opengl et j'ai un probleme pour faire tourner les figures sur elles-même . la fonction glr probleme de rotation [ par zizu89 ] bjr tous le monde [^^happy13] j'ai un projet en opengl d'un rubiks cube j'ai commencé la creation des cube et je voulais tout d'abord le faire tourne rotation d'un objet 2d [ par azkab ] bonjour,bon j ai un probleme avec mon programme, j ai passé des heures la dessus mais en vain.dans mon programme je cree un rectangle et je desire eff [C++] Problème en POO [ par Tijee ] Bonjour à tous.Voila, j'ai fait un petit moteur 2D avec SDL compilé avec Dev-Cpp, il est simple mais fonctionne très bien. J'aimerais parvenir au même


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,870 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales