Événements liés
  • Démo technique du samedi #1: 05 Mai 2007
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: [Demo] La démo du samedi #1  (Lu 3882 fois)
0 Membres et 1 Invité sur ce fil de discussion.
birslip Hors ligne
Administrateur
*****
Messages: 513


Voir le profil WWW
« 05 Mai 2007, 22:49:08 »

Désormais le samedi (oui il reste un quart d'heure!) sera la journée de la démo. En effet, avec les interviews et les tests, on s'adresse à un peu tout le monde, mais au final on n'a rien de spécifiquement dev. Alors on s'est bougé un peu, chaque samedi on vous proposera une démo «technique».
Je commence avec une démo de collision, mais des collisions un peu particulières : rectangle qui tourne contre rectangle qui tourne. A quoi cela sert me direz-vous? Eh bien ça peut toujours servir... Bon je vous laisse regarder cette démo et ses sources.

Explication

Jusqu'à présent, faire des collisions entre deux rectangles, c'est simple, on compare les abscisses, les ordonnées, puis on sait si ils se touchent. Mais dès que les rectangles pivotent, c'est une toute autre histoire.

http://www.slurm.biz/temp/box1.gif

Donc pour savoir si les deux rectangles, après avoir appliqué une rotation, sont en collision, on va d'abord regarder si leurs zones (les rectangles bleus) se chevauchent, ce qui évitera de faire des tests inutiles si ce n'est pas le cas.

Ensuite, pour tester plus précisément, on a besoin d'une fonction qui détermine si un point (P) est à l'intérieur du rectangle. Un point est dans le rectangle si il est à droite des vecteurs AB, BC, CD et DA. Alors pour savoir si ce point P est à droite, on utilise le produit vectoriel. Pour deux vecteurs u et v, la composante Z du produit vectoriel de u et v se note uxvy - uyvx. Donc si cette composante Z est à droite, ce sera négatif, sinon ce sera positif. C'est donc le signe que l'on regarde pour savoir si le point est à droite d'un vecteur.
Par exemple avec le point P et le vecteur AB, on en revient au vecteur u = AP et au vecteur v = AB.

http://www.slurm.biz/temp/box2.gif

Donc une fois cela déterminé, il sera assez simple de savoir quand deux rectangles se touchent : on vérifie en premier lieu si ils sont dans la même zone, ensuite on regarde si les points A,B,C et D sont dans l'autre rectangle, puis si le centre d'un rectangle est dans l'autre et enfin si les diagonales se croisent.

Journalisée

Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #1 : 05 Mai 2007, 23:38:54 »

Bonne initiative ça ! Bon, il va falloir qu'on créé le forum qui va bien et qu'on déplace ça, par contre Wink
Journalisée

Pouer Hors ligne
Hero Member
*****
Messages: 531


Voir le profil
Petit 1/2 en puissance :)

« Réponse #2 : 06 Mai 2007, 09:28:14 »

J'ai une petite idee pour la prochaine demo du samedi : collision entre deux triangle(quelquonque).
Donc si le coeur ten dit essaye Wink

Journalisée

Pitt Hors ligne
Administrateur
*****
Messages: 575


Voir le profil WWW
« Réponse #3 : 06 Mai 2007, 10:00:18 »

Mouarf le recyclage d'idées Cheesy
En tout cas, excellente initiative ! Wink
Journalisée
Nameless Hors ligne
Full Member
***
Messages: 153


Voir le profil WWW
« Réponse #4 : 06 Mai 2007, 12:03:04 »

Très bonne idée, et bien expliquée. Félicitations!
Journalisée

Smealum Hors ligne
Assassin
Administrateur
*****
Messages: 590


Voir le profil WWW
Assassin

« Réponse #5 : 06 Mai 2007, 12:33:38 »

J'ai une petite idee pour la prochaine demo du samedi : collision entre deux triangle(quelquonque).
Donc si le coeur ten dit essaye Wink


Ah non, on a déjà 3 ou 4 démos prètes pour samedi prochain, et ça ne sera pas ça Langue
Journalisée

MasterDje Hors ligne
Diet Coke Addict
Global Moderator
*****
Messages: 3242


Voir le profil WWW
« Réponse #6 : 06 Mai 2007, 12:46:31 »

Produit vectoriel... whoua... j'ai un bac Economie moi... no entiendo...  Grin
Journalisée

t4ils Hors ligne
Branleur
Elite Member
**
Messages: 881


Voir le profil WWW
« Réponse #7 : 06 Mai 2007, 13:32:45 »

excellent et très utile Smiley

continuez sur cet élan Wink
Journalisée

Le codage amateur ? Parce que je le veux bien.
dark_vador Hors ligne
Full Member
***
Messages: 143


Voir le profil WWW
« Réponse #8 : 06 Mai 2007, 15:23:08 »

C'est cool comme idée ! Super sa m'aidera beaucoup , et certainement d'autre !  Wink
Journalisée

Que la force soit avec vous !!
Arcadia Hors ligne
Newbie
*
Messages: 32


Voir le profil WWW
« Réponse #9 : 06 Mai 2007, 18:46:20 »

Excellent exemple pour une excellente initiative. Bravo !
Journalisée

Arcadia
---
Ouiiiiiinnnn, ouiiiiiinnnn ! (Arcadia, 1971)
Doud Hors ligne
Global Moderator
*****
Messages: 246


Voir le profil
Chasseur de bug

« Réponse #10 : 06 Mai 2007, 21:34:37 »

Merci pour cette démo birslip! Kiss

On a même droit aux sources commentées  Shocked
* Doud attend samedi prochain avec impatience Langue



Journalisée

Mollusk Hors ligne
PAlib Guru et
Administrateur
*****
Messages: 3480


Voir le profil WWW
Ne vous posez pas de questions, codez !

« Réponse #11 : 07 Mai 2007, 16:51:26 »

Petit up pour tester l'icone et dire que toutes les propositions sont bonnes à prendre pour les démos suivantes Wink
Journalisée

Pages: [1]   Haut de page
Imprimer

Aller à: