begin process at 2012 02 11 02:44:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Rebond par calcul d'angle


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

Rebond par calcul d'angle

dimanche 4 juin 2006 à 16:28:43 | Rebond par calcul d'angle

SnOOpss

Bonjour je cherche a faire rebondir un objet sur des surfaces mais en calculant avec les angles donc pas avec un truc du genre
if x > 400 dx*=-1;
if x < 10 dx =*-1;

Mais plutot si un objet rentre en collision avec un objet d'angle A1 sous un angle A2 quel est son nouvel angle.

J'ai commencé a me faire une base pour les surfaces planes des cotés mais c'est un algo bourré de tests et de corrections (fait a tatons) donc horrible et je commence a peter un cable pour les surfaces inclinées et il me reste les collisions entre 2 objets en mouvement.

Si quelqu'un a un exemple ou le titre du cours de meca que je cherche sous google (j'ai cherché avec les verteurs mais generalement c'est plus avec des coordonnées x y que les angles et je trouve chiant d avoir a les reconvertir en coordonnées rectangulaire pour reobtenir un angle)
dimanche 4 juin 2006 à 16:51:27 | Re : Rebond par calcul d'angle

luhtor

Faut pas utiliser les angles, mais seulement vecteurs et produits scalaires.
dimanche 4 juin 2006 à 18:01:23 | Re : Rebond par calcul d'angle

SnOOpss

En fait j'ai trouvé pour les surfaces planes donc c'est possible avec les angles voila ma fonction (trouvé a tatons)

double changAng(double angle0,double angle) {
    double A = 2* angle0 - angle;
    if (A < 0) { A = A + 2 * PI ; }
    return A;
}

On fournis angle0 qui represente l'angle de la surface (0 pour un plan horizontal, 90 pour un plan vertical, etc ...) et l'angle actuel. La fonction retourne le nouvel angle de rebond.

Par contre il me manque pour les objet en mouvement et la je ne sais pas si c'est possible sans passer par les scalaires ??
dimanche 4 juin 2006 à 18:55:51 | Re : Rebond par calcul d'angle

ben92600

sa resemble vaguement a la formule de la refraction pour le raycasting. donc comme c'est un sujet qui est pas mal expliquer sur le net tu peu regarder par la ;)
lundi 5 juin 2006 à 00:07:28 | Re : Rebond par calcul d'angle

Galmiza

Bah, pour l'objet1, tu inverses la composante v de la vitesse relative de l'objet1/objet2 dans la base (u,v) où v est la normale à la surface de collision.
Et voilà ! En une phrase. Sympa nan ?
Faut lire la phrase à l'envers pour comprendre.
Idem pour l'objet2 (pas la peine de recalculer le base de passage globale -> (u,v)).

lundi 5 juin 2006 à 07:21:30 | Re : Rebond par calcul d'angle

SnOOpss

Et il faut pas prendre en compte les forces ?
Si un objet a plus d'energie que l'autre qu'est ce qui se passe, si un objet en mouvement entre en collision avec un objet statique il s'arrette et transmet son energie au corps statique et c'est le corps2 qui se deplace apres.
J'ai vu une source de simulation de billard sur ce site mais c'est des formule de "precalcul" pour calculer les futures collisions et comme moi je fait ca en temps reel je bloque encore.
lundi 5 juin 2006 à 07:24:43 | Re : Rebond par calcul d'angle

SnOOpss

Désolé ,je viens de relire ton post en faisant plus attention et ca pourrait m'interesser tu aurais pas les formules de math pour
v est la normale à la surface de collision ?
et la vitesse relative de l'objet1/objet2 ?
lundi 5 juin 2006 à 10:39:45 | Re : Rebond par calcul d'angle

Galmiza

Déja fais-tu de la 3D ou de la 2D ?
Tes solides en mouvement peuvent-ils avoir des formes quelconques ?
Peuvent-ils tourner sur eux-mêmes ? (ça parait con mais ça complique sensiblement les calculs)
En gros quelles hypothèses veux-tu faire ?
Des techniques de calculs physiques, il y en un paquet !
lundi 5 juin 2006 à 20:11:11 | Re : Rebond par calcul d'angle

SnOOpss

C'est en 2D, je refait le jeu de globulos en c++ jouable en local (facilement trouvable sur google en flash jouable sur leur serveur).
Pour simplifier les "globule" ne sont (mathematiquement) que des cercles et pour le moment leurs deplacements se font a partir d'un angle et d'un vecteur vitesse (c'est fonction du temps donc je pense pas qu'on puisse appeller ca energie) et une constante pour les pertes par frottements.

En fait je sais meme pas si je m'y prend correctement, ceux que voit bossent avec les moments et les energies.

Deja je fait baisser une vitesse avec une force (frottement qui diminue vitesse) et physiquement c'est pas trop realiste c'est plutot du bricolage.
mardi 6 juin 2006 à 17:30:44 | Re : Rebond par calcul d'angle

SnOOpss

Pour ceux qui cherchent aussi je suis tombé sur
http://forum.games-creators.org/archive/index.php/t-2551.html
mais surtout sur
http://www.planete-sciences.org/robot/wikibot/index.php/Collision ( tres interessant)


Cette discussion est classée dans : objet, calcul, angle, surfaces, rebond


Répondre à ce message

Sujets en rapport avec ce message

Pb de calcul de la visibilité d'1 objet [ par ngryman ] Salut, bon g un petit pb pr calculer si une bounding box se trouve affichée à l'écran, je sais qu'il fo faire ca par rapport aux plans du champ de vis calcul de l'angle dièdre [ par hamoudito ] Comment pourra t-on calculer l'angle dièdre en C++, si par exemple on a un arret qui contient 2 faces adjacents sur cet arret????? tandis que le calcu inclure un objet dans une fonction d'un autre objet... [ par ptidiable ] Salut a tous :)Voila j'ai deux Objets : Serpent et Moteurj'aimerais fair une fonction dans serpent qui reçoivent en paramétre un objet de type Moteurl calcul erreur d'intégration [ par ambessa ] bonjour,voila pour un projet de maths de dois codé la méthode composite de simpson.Ainsi que de calculer l'erreur.pour f(x)=cos(x^2) et g(x)=sin(x^2)j Extraction de données dans un char[260] [ par seb2086 ] Bonjour,char variable[260] = "C:\Mes docs\Dossier\Objet.X" ;Voila en fait je voudrais récupérer dans une autre variable seulement Objet.X.En gros il f Surcharge de l'operateur [] => erreur avec un objet créé dynamiquement [ par julien_boss ] Bonjour,j'ai une classe LogFile, dans laquelle j'ai surchargé l'operateur [] pour qu'il renvoit un ENREGISTREMENT (structure perso).Je fais ceci : Log Forme quelconque [ par repial ] Bonjour à tous,je cherche à modéliser un objet (par exemple une patate) par sa surface de contour (contour fermé donc). Disons que j'ai un tableau dan [STL] parcours de liste. [ par herlockg ] Bonjour,Je voudrais pouvoir parcourir une liste d'objet de type personne et récupérer un des objets de ma liste pour la mettre dans un objet (de même Les rotations en OpenGL -> problème avec le type d'angle ! [ par eldered ] Bonjour à vous,J'ai un petit probleme de compréhension (théorique) concernant les rotations en OpenGL.Lors d'une rotation autour de l'axe z, voici com DirectX - intersection entre 2 surfaces [ par Adeon ] Comme vous pouvez le constater, l'intersection entre ces 2 surfaces est triangulé. De plus en fonction de la position de la caméra, ces triangles boug


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,061 sec (4)

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