| Collision entre un point et un rectangle incliné | |
|
|
Auteur | Message |
---|
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:01 | |
| Bonjour, je cherche un algorithme ou du code pouvant calculer si il y a une collision entre un point un et rectangle et possiblement retourner le point de collision. J'ai déja la position des 4 coins.
J'ai penser à utiliser les coins pour créé des lignes et essayer de savoir si le point est à l'intérieur
ou de gèrrer le rectangle comme une grosse ligne
mais dans tout les cas, aucune idée comment faire sans faire 10 000 calculs
Et sans fonction préfaite genre collision_ligne. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:18 | |
| lol, y a pourtant rien de plus con comme algo
si x<left ou x>right ou y<top ou y>bottom pas de collision sinon collision aux coordonnées x-left, y-top (coordonnées relatives au rectangle)
Left/top indique le sommet gauche du rectangle et right/bottom en bas a droite |
|
| |
Invité Invité
| Sujet: Re: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:30 | |
| peut être que son rectangle est pivoté |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:37 | |
| |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:40 | |
| Ba ouai il est incliné c'est dans le titre sinon merci pour le lien, je vais lire edit: je vois pas où il fait une rotation d'objet dedans, tout comme une gestion sur un objet incliné :/ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Sam 26 Fév 2011 - 22:55 | |
| J'avoue, mais fait une recherche sur les oob, je suis sur que tu trouveras ton bonheur. Au pire sur mon 2eme pc je crois que j'ai un lien ou y a toutes les collisions inimaginables, donc si a la rentrée t'as toujours rien je te le passerais :p |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Collision entre un point et un rectangle incliné Dim 27 Fév 2011 - 1:29 | |
| oob? Sinon même is je trouve je serais quand même interesser de voir ce lien, histoire de savoir si j'ai bien fait le truc ^^ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Dim 27 Fév 2011 - 10:08 | |
| AABB : Axis Aligned Bounding Box OBB : Oriented Bounding Box (dsl j'avais fait une faite de frappe) Je vais essayer de te bricoler un algo dans la journée, j'ai une petite idée de comment faire :p Avant faut juste que je finisse un ptit truc par contre Pour le lien faudra attendre la rentré (a moins que je le retrouve la) car il est a ma cité universitaire. |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Collision entre un point et un rectangle incliné Dim 27 Fév 2011 - 10:57 | |
| - onilink_ a écrit:
- si x<left ou x>right ou y<top ou y>bottom
Ah ! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Dim 27 Fév 2011 - 11:05 | |
| lol j'avais pas vu le incliné (suis un peu crevé ces derniers temps ._.) |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Collision entre un point et un rectangle incliné Dim 27 Fév 2011 - 14:25 | |
| Ah je vois^^ J'espère juste pas tomber sur trop de truc 3D, dur de convertir certaines parties, comme ya rarement de commentaires Merci d'avance pour l'algo =) Sinon je crois que tu peux laisser tomber pour ton site, on risque d'avoir oublié d'ici là |
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 1:03 | |
| la réponse n'est pas simple ...
Soit P le point à vérifier.
Si P N'EST PAS dans le rectangle circonscrit alors, on arrête.
Si P N'EST PAS dans les triangles formés entre le rectangle et le rectangle circonscrit, alors on arrête
Sinon, le point est en collision. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 1:10 | |
| Y a la technique des coté projeté sur des axes aussi, qui parait simple a coder et rapide. C'était dans le lien que j'avais trouvé ... |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 13:01 | |
| Un calcul vectoriel pour passer le point dans le référentiel du rectangle sinon ? Ou alors un test de collision avec les deux triangles qui composent le rectangle. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 13:15 | |
| Le problème c'est que calculer si un point dans un triangle est assez couteux (a ce que je sais en tout cas). Normalement pour ce genre de truc faut utiliser le théorème de l'axe séparateur. |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 13:55 | |
| Encore plus compliqué, créer un nouveau repère de coordonnées dont l'origine si situe dans un angle du rectangle, puis ensuite ça revient à faire pareil que ce qu'avait dit onilink au début. - onilink_ a écrit:
- lol j'avais pas vu le incliné (suis un peu crevé ces derniers temps ._.)
Je parlais pas de ça ^^ Même si le rectangle était pas incliné ton code est faux |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 14:32 | |
| Ah bon ? Je vois pas pourquoi ça marcherais pas oO (je doit être vraiment très fatigué lol) Edit : chez moi ça marche : - Code:
-
var xx, yy, left, right, top, bottom; xx=argument0 yy=argument1 left=argument2 top=argument3 right=argument4 bottom=argument5
draw_rectangle(left, top, right, bottom, 1)
if(xx<left||xx>right||yy<top||yy>bottom) return false return true |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 14:53 | |
| - nicoulas a écrit:
- Encore plus compliqué, créer un nouveau repère de coordonnées dont l'origine si situe dans un angle du rectangle, puis ensuite ça revient à faire pareil que ce qu'avait dit onilink au début.
Just what I said |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 16:42 | |
| J'ai tellement rien comrpis que j'soe même pas imaginer coder ca en plus. |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Collision entre un point et un rectangle incliné Lun 28 Fév 2011 - 17:00 | |
| Non non c'était moi qui était fatigué ... double fail, j'ai rien dit |
|
| |
Contenu sponsorisé
| Sujet: Re: Collision entre un point et un rectangle incliné | |
| |
|
| |
| Collision entre un point et un rectangle incliné | |
|