casafa  | Merci pour vos réponses...je me demande qu'est ce qui est le plus approprié pour mon problème : map ? set ?
 -Le calcul de la distance est pas mal comme idée, je me demande bien pourquoi je n'y ait pas pensé plutôt
 -Pour ce qui est de Line comme key, je voit pas comment ça pourrait fonctionner...que va comparer le std::map ?
   J'ai fait ce code :
  Code :
 - struct comp
 - {
 -   bool operator()(const Line* line1, const Line* line2) const
 -   {
 -     float dist1 = line1->p1->distance(line2->p1);
 -     float dist2 = line1->p2->distance(line2->p2);
 -     if( (dist1 + dist2) < 0.002 )
 -       return false;
 -     else
 -       return true;
 -   }
 - };
 - int main()
 - {
 -   set<Line *, comp> test;
 -   Line *line1 = new Line(new Point(1.0, 2.0, 4.0), new Point(4.0, 5.0, 6.0));
 -   Line *line2 = new Line(new Point(1.0, 2.0001, 4.0), new Point(4.0, 5.0, 6.0));
 -   Line *line3 = new Line(new Point(8.0, 9.0, 10.0), new Point(11.0, 12.0, 13.0));
 -   test.insert(line1);
 -   test.insert(line2);
 -   test.insert(line3);
 -   cout<<"Resultat : "<<test.size()<<endl;
 -   return 0;
 - }
 
  |  
 
 Résultat : 2
   J'ai donc ce que je voulait : line1 et line2 sont tellement proche qu'elle sont considéré comme 2 lignes identiques.
   Il me reste un problème : comment incrémenter nbLine quand un insert à "échoué" ?    Message édité par casafa le 30-12-2007 à 19:42:03
  |