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; }
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.
[EDIT]Suite à cette réponse originellement dans cette discussion[/EDIT]
Salut,
GEOS est en effet plus aboutie et surtout elle dispose d'un modèle de précision qui permet d'assurer une robustesse par snap rounding. Honnêtement, sa robustesse est surprenante (en même temps, elle est largement à travers la cartouche spatiale postgis de postgresql où entre des vraies données).
C'est tout de même du lance rocket à mon gout si elle n'a pas besoin à terme de plus de fonctionnalité et si elle se moque de voir un point partir dans le décors dans les cas extrêmes.
Je ne trouve pas qu'elle soit spécialement facilement à prendre en main (passage par des fabriques, construction des objets plus fastidieuses qu'avec boost etc...), mais ca reste acceptable pour un projet de taille suffisante. La compilation est relativement simple (pas de dépendance, makefile et projet visual fourni)...
Bref une lib qui mérite d'être saluée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager