Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : intersection de 2 segments dans l'espace [ Algorithme / Maths ] (HELPY)

vendredi 22 juin 2007 à 11:57:44 | intersection de 2 segments dans l'espace

HELPY

Bonjour,

Je recherche une classe java ayant pour parametres d'entrée 2 segments ( définis chacuns par 2 points dans l'espace ( xA,yA,zA) ( xB,yB,zB)  )  et ayant des méthodes pour connaitre:
- si ces segments s'intersectent... et si oui le point d'intersection
- si ces segments sont concourants... et si oui le ou les points extremes concourants.

Si qq peut m aider, d'avance merci.

Luc



vendredi 22 juin 2007 à 12:55:08 | Re : intersection de 2 segments dans l'espace

Twinuts

Membre Club Administrateur CodeS-SourceS

Salut,

tu as essayé avec les classes Polygon (voir autre selon le besoin regarde les objet qui implémente Shape) et Area (qui permet de faire quelques manip de plus sur les Shape (Polygon l'implémente)?



------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

vendredi 22 juin 2007 à 13:34:06 | Re : intersection de 2 segments dans l'espace

laurent1024

Comme tu travaille dans l'espace, il faut tout d'abord que tu regardes si les 4 points sont coplanaire. Si c'est le cas, avec des changemnt de repere tu peux te mettre dans le cas d'un intersection de deux segments dans un espace 2D
++

vendredi 22 juin 2007 à 16:00:11 | Re : intersection de 2 segments dans l'espace

eplanet

Pour trouver si les points sont coplanaires :
    - tu choisis l'une des extrémité comme centre du repère. Tu disposes donc de trois vecteurs par rapport à ce point : v1, v2, v3
    - tu fais le produit vectoriel entre deux des vecteurs v1^v2
    - tu calcules le produit scalaire du vecteur ainsi obtenu avec le troisième vecteur. (v1^v2).v3

--> Si le produit est nul, les points sont bien coplanaires.

Tu peux alors passer à la deuxième étape :

    -tu dois trouver le vecteur le vecteur normal à v1 contenu dans le plan, il suffit de faire v1^(v2^v3) = v4, (v2-v3)^(v1^v2) = v5
    -pour tester si il y a intersection, tu dois avoir :   (v2.v4)*(v3.v4) <=0 et (v2.v5)*((v2-v1).v5) <=0

Vince

samedi 23 juin 2007 à 17:42:55 | Re : intersection de 2 segments dans l'espace

GodConan

avec les class java2D je ne connais pas de soluces ;o) cependant  ;o) avec les équation de tes droites ca pose pas de soucis normalement ;o) .... aller ;o) comme quoi faller pas jeter ses vieux bouquins de math ;o)...



[purple]GodConan[/purple][:o)]

vendredi 5 octobre 2007 à 22:30:16 | Re : intersection de 2 segments dans l'espace

CoreBreaker

public class Point
{
  double x, y, z;

  public Point(double x, double y, double z)
  {
    this.x= x;
    this.y= y;
    this.z= z;
  }

  public double scalProd(Point p)
  {
    return (x * p.x) + (y * p.y) + (z* p.z);
  }

  public Point vectProd(Point p)
  {
    return new Point((y * p.z) - (z * p.y),
                     (z * p.x) - (x * p.z),
                     (x * p.y) - (y * p.x));
  }

  public Point sub(Point p)
  {
    return new Point(x - p.x, y - p.y, z - p.z);
  }

  public double norm()
  {
    return scalProd(this);
  }
}

public class Segment
{
  Point e1, e2;

  public Segment(Point e1, Point e2)
  {
    this.e1= e1;
    this.e2= e2;
  }

  public Point intersection(Segment s)
  {
  }

  public Segment concourant(Segment s)
  {
    if( e1.sub(e2).vectProd(s.e1.sub(s.e2)).norm() > 1E-10 )
      return null;

    if( e1.sub(e2).vectProd(s.e1.sub(e1)).norm() > 1E-10 )
      return null;

    // Les 2 segments sont alignés sur une meme droite
    Point dir= e2.sub(e1);
    double n= Math.sqrt(dir.norm());
    Point u= new Point(dir.x / n, dir.y /n, dir.z / n);
    double pos1= e2.scalProd(u);
    double pos2= s.e1.scalProd(u);
    double pos3= s.e2.scalProd(u);
    boolean inv= false;

    if( pos2 > pos3 )
    {
      double t= pos2;

      pos2= pos3;
      pos3= t;
      inv= true;
    }

    if( (pos2 > pos1) || (pos3 < 0) )
      return null;

    if( (pos2 <= 0) && (pos3 >= pos1) )
      return this;

    if( (pos2 >= 0) && (pos3 <= pos1) )
      return s;

    if( pos2 < 0 )
      return new Segment(e1, ( inv )?s.e1:s.e2);
    else
      return new Segment(( inv )?s.e2:s.e1, e2);
  }
}


Core Breaker



Cette discussion est classé dans : points, espace, oui, segments, intersection


Répondre à ce message

Sujets en rapport avec ce message

probleme de classe [ par porkepix ] salut [point]je [virgule] viens de telecharger sur le site de sun un package[point] et il y a un truc que j'arrive pas a faire [deux points] foutre to le point est-il a l'interieur du polygone ? [ par rekam ] Hello ! Je fais un peu de Java (pas en applet), et j'ai une question pour les pros de la prog. J'ai un vecteur de points, qui forme un polygone fermé demon [ par regi ] bonjour, 1) je voudrais faire tourner mon pgm en tant que demon 2) faire apparaitre une icone dans la barre des tâches permettant de faire revenir le Récupérer l'espace libre d'un disque ??? [ par Javapabien ] Bonjour amateurs et pros de java,moi je souhaiterais trouver le moyen de connaitre l'espace libre d'un disque dur dans une appli java. (et ensuite res Text en gras dans un JTextPane ?? [ par Kindasch ] Bonjour, je veux mettre en gras une partie d'un JTextPane (espace), donc je sélectionne cette partie, et je fais :Style s=null;StyleConstants.setItali espace sur disque [ par hichham ] comment savoir la taille totale d'un disc ou lespace libre dessus en java merci d'avance alternative a tokenizer ? [ par Pom825 ] Bonjour,je cherche la fonction la plus elegante pour compter le nombre d'attributs dans un fichier (mot espace par un espace ou un tab).Fichier:toto.t Calcul de position d'un pixel suivant quelques critères... [ par gaelcal ] Bonjour !Voilà j'ai un problème qui me prend la tête depuis une semaine et là je craque un peu !Je vous explique:A la base j'ai la position de 2 point gifs animés possible oui ou non [ par kaliel ] bonjour tout le monde!!!ma question est simple: "Est-il possible oui ou non d'utiliser les gifs animés en java ?et si oui comment? "merci pour votre r intersection ! [ par furryMinogue ] Bonjour a tous !!!!!!!!!!!!!!alors ma question la voila !soit deux droites d'equations parametriques :x = xA + alpha * U.xy = yA + alpha * U.yet x = x


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.