







On peut considérer que c'est équivalent a chercher si un point est dans un rectangle... sujet qui a déjà été débattu dans ce forum.![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.








pouvez me donner le lien svp !!
je pense que c'est équivalent puisque j'ai les cordonnées des segments qui entourent le segment AB
Et bien si tu tapes "point dans un rectangle" dans la zone de recherche personnalisée google (tout en haut de la page), puis que tu cliques sur "Go!" tu arrives là :
http://www.developpez.net/forums/d41...rectangle-non/
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.








merçi pour votre effort![]()








pardonner moi mr pseudocode mais j'arrive pas à comprendre ce programme !!
est ce que left , right,top,bottom sont des fonctions ou quoi ?
// left = rectangle corner with lowest "x"
// right = rectangle corner with highest "x"
// top = rectangle corner with highest "y"
// bottom = rectangle corner with lowest "y"
boolean isInsideOrientedRectangle(int x, int y) {
// outside the bounding box ?
if (x<left.x) return false;
if (x>right.x) return false;
if (y>top.y) return false;
if (y<bottom.y) return false;
// identify sub-regions of the bounding box and test determinant sign
if (x<=bottom.x && y<=left.y)
if ( (y-bottom.y)*(bottom.x-left.x) < (left.y-bottom.y)*(bottom.x-x) ) return false;
if (x>=bottom.x && y<=right.y)
if ( (y-bottom.y)*(right.x-bottom.x) < (right.y-bottom.y)*(x-bottom.x) ) return false;
if (x>=top.x && y>=right.y)
if ( (top.y-y)*(right.x-top.x) < (top.y-right.y)*(x-top.x) ) return false;
if (x<=top.x && y>=left.y)
if ( (top.y-y)*(top.x-left.x) < (top.y-left.y)*(top.x-x) ) return false;
return true;
}
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.








je pense que ça marche pas![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.








ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Bonjour,
J'ai le même problème, c'est à dire que j'ai les coordonnées x et y de 2 points A et B et je voudrais savoir si un point C est dans le rectangle de longueur AB et de largeur 5 km.
Le problème est que je n'arrive pas à identifier les 4 coins du rectangle.
Vous avez déjà répondu à la suite.
Merci d'avance
Si ton rectangle n'était pas penché, les coins seraient au-dessus/au-dessous de A et B.
C'est a dire qu'il faudrait ajouter/retrancher le déplacement (0,d) aux deux points, où 'd' est la demi hauteur du rectangle.+-----------+ | | A B | | +-----------+
Comme le rectangle est penché, il faut au préalable faire une rotation de ce déplacement: (d*sin(theta), d*cos(theta)).
Un peu de trigo nous permet de calculer cos(theta) et sin(theta) depuis les coordonnées de A et B:
cos(theta) = AB.x / |AB| = (B.x-A.x) / racine ( (B.x-A.x)² + (B.y-A.y)² )
sin(theta) = AB.y / |AB| = (B.y-A.y) / racine ( (B.x-A.x)² + (B.y-A.y)² )
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Merci beaucoup de votre réponse,
Je vais essayer de l'appliquer, je reviendrai poster pour vous dire si j'ai réussi.
Dans la solution donnée au dessus pour la présence ou non d'un point dans un rectangle, à quoi correspond left.y?
Est-ce que c'est la coordonnée y du point dont x est le plus petit?
idem pour right.y top.x et bottom.x
Merci d'avance
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
merci beaucoup ça fonctionne![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
C'est sur!
J'ai toujours eu des lacunes en trigonométrie.
En tout cas encore merci pour ta réactivité.
Partager