tuksy Posté(e) le 1 octobre 2014 Posté(e) le 1 octobre 2014 Bonjour a tous , je vient demandé une aide car je bloc sur un point depuis un moment. j'ai une routine qui demande a l'utilisateur de piqué un point sur une polyline . 1- je veux Vérifier la position du point (point piqué Sur la polyline ou pas ) fonction boolean je pense ? 2- comment récupérer le point perpendiculairement projeté sur la polyline si le point piqué est en dehors de la polyline . j'espère que j'été claire . Merci d'avance .
(gile) Posté(e) le 1 octobre 2014 Posté(e) le 1 octobre 2014 Salut, La classe abstraite Curve, dont dérive la classe Polyline, a une méthode GetClosestPointTo() qui retourne le point 3d sur la courbe le plus proche du point 3d passé en argument. Un petit exemple avec une méthode d'extension IsPointOnCurve(). La méthode est surchargée pour pouvoir spécifier un tolérance ou utiliser la tolérance globale dans la comparaison des points. /// <summary> /// Méthodes d'extension pour la classe abstraite Curve /// </summary> public static class CurveExtensions { /// <summary> /// Evalue si le point est sur la courbe en utilisant la tolérance globale. /// </summary> /// <param name="curve">L'instance d'un type dérivé de Curve à laquelle s'applique la méthode.</param> /// <param name="point">Le point (coordonnées WCS) à évaluer.</param> /// <returns>true si le point est sur la courbe, false sinon.</returns> public static bool IsPointOnCurve(this Curve curve, Point3d point) { return curve.IsPointOnCurve(point, Tolerance.Global); } /// <summary> /// Evalue si le point est sur la courbe en utilisant la tolérance spécifiée. /// </summary> /// <param name="curve">L'instance d'un type dérivé de Curve à laquelle s'applique la méthode.</param> /// <param name="point">Le point (coordonnées WCS) à évaluer.</param> /// <param name="tolerance">La tolérance à utiliser pour l'évaluation.</param> /// <returns>true si le point est sur la courbe, false sinon.</returns> public static bool IsPointOnCurve(this Curve curve, Point3d point, Tolerance tolerance) { if (curve == null) throw new ArgumentNullException("curve"); return point.IsEqualTo(curve.GetClosestPointTo(point, false), tolerance); } } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
tuksy Posté(e) le 1 octobre 2014 Auteur Posté(e) le 1 octobre 2014 le problème est réglé , Merci infiniment Gile Cordialement
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant