CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

intersection de lignes

caelacanthe
caelacanthe
Niveau 10
24 février 2009 à 23:12:50

Bonjour tout le monde!

J'ai un programme dans lequel je dois dire si un segment représenté par deux points dans un espace 2d (le rouge) est coupé par d'autres segments (les noirs).

Et je vois pas trop comment faire, le code n'est pas un problème, est-ce que vous auriez une formule mathématique sous la main pour détecter la présence d'intersections? :peur:

merci d'avance :coeur:

caelacanthe
caelacanthe
Niveau 10
24 février 2009 à 23:13:27

j'ai omis le petit shéma :hap:

http://www.noelshack.fr/uploads/p0rtals028376.PNG

Pseudo supprimé
Pseudo supprimé 24 février 2009 à 23:37:40

Paul Bourke est ton ami.

godrik
godrik
Niveau 30
24 février 2009 à 23:41:52

l'idee est simple, tu exprimes tes segments comme des droites sous la forme y = ax + b et tu resoud le systeme d'equation.
Ca va te donner le point d'intersection des droites, mais toi tu as des segments de droites. Il faut donc verifier que le point d'intersection est bien dans les deux segments de droite.

NB: il y a des subtilites dans la bonne implementation de ca.
NB2: Il y a probablement moyen de faire mieux.

dnob700
dnob700
Niveau 10
24 février 2009 à 23:42:42

Une méthode que je vois :

Si on appelle A et B les extrémité de la ligne rouge et C et D les extrémité de l'une des lignes noir, alors :

AB*AC (produit vectoriel) te donne de quel coté de la droite AB se trouve le point C (en considérant le signe de la composante sur z du résultat). Tu fait pareil pour D, et s'ils sont de deux coté différents (une fois le signe est +, l'autre fois, il est -), alors tu recommence pour A et B par rapport à la droite CD. Si là encore ils sont de deux coté opposé, alors c'est que les segments se croisent.

caelacanthe
caelacanthe
Niveau 10
25 février 2009 à 00:36:56

merci de vos réponses :merci:

je vais essayer ce week-end, je vous tiendrai au courant.

caelacanthe
caelacanthe
Niveau 10
06 avril 2009 à 23:10:16

bon! l'intersection de ligne fonctionnait parfaitement, merci beaucoup :oui:

mais /r/ votre aide pour un autre problème, surement similaire, m'enfin... il s'agit de faire rebondir une balle sur un mur plat :peur:

http://www.noelshack.com/com/voir/130309/prob023997.PNG

je dirais que c'est pas le calcul de la position de la balle en pointillés qui pose problème, juste la réponse à la collision... je ne vois pas trop comment faire, quelqu'un aurait une idée? merci beaucoup :peur:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment