JeuWeb - Crée ton jeu par navigateur
[Résolu][PHP] Détecter l'intersection de deux rectangles ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][PHP] Détecter l'intersection de deux rectangles ? (/showthread.php?tid=5742)



[Résolu][PHP] Détecter l'intersection de deux rectangles ? - Argorate - 12-10-2011

Bonjour amis des algorithmes,

j'aurais besoin de vous pour savoir si vous auriez quelques chose a me proposer, répondant a ma problématique.

Admettons que l'on pose 2 intervalles :

$i1 = array(array($xmin1, $xmax1), array($ymin1, $ymax1));
$i2 = array(array($xmin2, $xmax2), array($ymin2, $ymax2));

Comment feriez-vous pour détecter si ces deux intervalles ont une ou plusieurs coordonnée(s) en commun (return true)? ou aucune (return false)?
Sachant que c'est pour une Map, cela représente donc des cases.

Merci à ceux qui prendront le temps de répondre Wink


RE: [PHP-Math] détection union d'intervale? - niahoo - 12-10-2011

Je sais pas si c'est suffisant mais voilà une base de réflexion:

Code :
si xmin1 > xmax2 ou xmin2 > xmax1 => false
sinon si ymin1 > ymax2 ou ymin2 > ymax1 => false
sinon => true



RE: [PHP-Math] détection union d'intervale? - Maz - 12-10-2011

Des intervalles dans une carte? Tu parles bien de données temporelles?


RE: [PHP-Math] détection union d'intervale? - Argorate - 12-10-2011

niahoo: merci bien, j'avais bien entendu ma petite idée sur la question, mais j'avoue que je n'avais pas pensé a prendre l'inverse : cherchez le cas qui ne marche pas plutot que ceux qui marche, je vais voir si ce n'est pas plus simple avec cette logique Smile

Maz: mon poste n'est pourtant pas long et contient la réponse a ta question :p
Citation :Sachant que c'est pour une Map, cela représente donc des cases.

Donc je parle de coordonnées Wink

En gros pour la faire courte, comment savoir si deux rectangles ont une partie en commun (tu peux prendre un papier et un stylo si tu vois pas la représentation).


RE: [PHP-Math] détection union d'intervale? - Argorate - 12-10-2011

Bon c'est ok, a part qu'il me faut le cas de l'égalité dans mes comparaisons, thx !


RE: [PHP-Math] détection union d'intervale? - Maz - 12-10-2011

@Argorate: ok, nan car sous PgSQL les intervalles sont des données temporelles: interval '6 hours' alors je me suis dis "il essaie peut-être de faire une map basée sur le temps"(ne cherchez pas ou je suis aller trouver cette idée).