begin process at 2010 02 09 22:30:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Algorithme

 > 

Maths

 > 

intersection de 2 segments dans l'espace


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

intersection de 2 segments dans l'espace

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ée 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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales