Bonjour,
j'ai 3 point A(xa,ya,za), B(xb,yb,zb) et C(xc, yc,zc), les deux points A et B forment un segment
Comment je peux calculer la distance (la plus courte) entre C et le segment AB?
Merci d'avance
Bonjour,
j'ai 3 point A(xa,ya,za), B(xb,yb,zb) et C(xc, yc,zc), les deux points A et B forment un segment
Comment je peux calculer la distance (la plus courte) entre C et le segment AB?
Merci d'avance
est-ce que ton segment est une droite, ou est ce que c'est vraiment un segment? i.e. est-ce que c'est la distance la plus proche au point A ou B ou un point entre A et B, ou bien la distance entre le point C et n'importe quel point sur une droite qui passe par A, B, C?
la distance entre le point C et n'importe quel point sur le segment AB
Merci
http://paulbourke.net/geometry/pointline/ a été le premier résultat sur google.
C'est nouveau, c'est chaud, alors vous m'en prendrez bien une louche : Boost.Geometry:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <boost\geometry.hpp> #include <iostream> int main() { typedef boost::geometry::model::point<int,3,boost::geometry::cs::cartesian> point_type; typedef boost::geometry::model::segment<point_type> segment_type; point_type pt(1,2,3); segment_type s( point_type(3,4,5) ,point_type(6,7,8) ); std::cout<<boost::geometry::distance(pt,s)<<"\n"; return 0; }
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bonsoir,
Honnêtement 3DArchi, c'est peut être tout frais, mais ça m'a l'air mal barré ce boost::geometry... En l'absence de modèle de précision, avec les différents types de systèmes de coordonnées, j'ai hâte de les voir calculer un buffer qui ne soient pas une BBOX expansée...
Pour les calculs géométriques robuste avec une modélisation raisonnable, mieux vaut voir du coté de GEOS.
Partager