Déterminer si les deux rayons se croisent

J'ai deux rayons sur un plan en 2D qui s'étendent à l'infini, mais tous les deux ont un point de départ. Ils sont tous deux décrits par un point de départ et un vecteur dans la direction des rayons s'étendant à l'infini. Je veux savoir si les deux rayons se croisent, mais je n'ai pas besoin de savoir où ils se croisent (il fait partie d'un algorithme de détection de collision).

Tout ce que j'ai regardé jusqu'à présent décrit les trouver le point d'intersection de deux lignes ou segments de ligne. Est-il un algorithme rapide pour résoudre ce problème?

  • En 2D ou en 3D? Si le premier simplement vérifier et voir si la pente est la même pour les deux: si oui, ils sont en parallèle ou la même ligne. Sinon, ils vont se croisent.
  • Ce sont les rayons, pas de lignes, alors? Toutes les lignes se coupent en deux dimensions, sauf si elles sont parallèles.
  • désolé, plan 2D. Modifié pour refléter cela.
  • Norum: Oui, votre droit. Désolé, vous avez raison
  • sauf que, depuis qu'ils sont demi-lignes, le point d'intersection n'a pas besoin de s'allonger sur l'un d'eux. Si c'est en 3D, il est préférable de penser plus sérieusement à ce qui "coupe" les moyens.
  • Un rayon implique qu'elles proviennent d'une source commune, et, par conséquent, se croisent à la source...?
  • Deux rayons? De toute façon ils sont une ligne qui va dans un seul sens. Vers l'extérieur à partir d'un point de départ dans la direction d'un vecteur connu. J'ai deux paires de point de départ/vecteur des combos.
  • En fait, avoir un rething, prendre un sens différent à votre question que les autres réponses: vos lignes ont une fin, et l'autre " fin " s'en va à l'infini. Par conséquent, il pourrait être qu'ils ne sont ni parallèles, ni se croisent (si le 'carrefour' point est derrière l'un des connus des fins de ligne). Je n'ai pas posté une réponse que je n'ai pas eu le temps de le résoudre, mais en utilisant les différents gradients de théories ci-dessous ne sont pas suffisantes. Vous avez probablement besoin de résoudre à l'intersection, puis travailler si cette intersection correspond à une quantité positive pour les vecteurs pour les deux lignes.
  • Sont-ils vraiment de la moitié des lignes? Ou tout simplement pas comme infini comme de véritables lignes? 🙂
  • Oui! C'est ce que je demande. Ils peuvent à la fois être ni parallèle et de ne pas les croiser. Je suis à la recherche d'une façon simple de vérifier si elles se croisent ou pas, mais sans calculer le point d'intersection (a probablement quelque chose à voir avec les vecteurs et les produits croix comme ils font habituellement, moins de avec la logique réelle).
  • Il est tentant, au premier coup d'oeil, pour chercher un peu de fantaisie utilisation de produits vectoriels et en comparant les angles, mais réfléchir sur les calculs nécessaires pour obtenir ces produits et de regarder Adam ou de Pierre de la solution. Calculer les déterminants de l'équation jeu est presque le même que le calcul de vecteur de produits

InformationsquelleAutor Faken | 2010-05-28