changeset 3565:2999a6e9456b

ImageProcessing::ImagePoint::GetDistanceToLine
author Alain Mazy <alain@mazy.be>
date Thu, 07 Nov 2019 17:02:19 +0100
parents f47149cdc048
children ee508761d753
files Core/Images/ImageProcessing.cpp Core/Images/ImageProcessing.h
diffstat 2 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Core/Images/ImageProcessing.cpp	Thu Nov 07 10:50:50 2019 +0100
+++ b/Core/Images/ImageProcessing.cpp	Thu Nov 07 17:02:19 2019 +0100
@@ -56,6 +56,11 @@
     return sqrt(dx * dx + dy * dy);
   }
 
+  double ImageProcessing::ImagePoint::GetDistanceToLine(double a, double b, double c) const // where ax + by + c = 0 is the equation of the line
+  {
+    return std::abs(a * static_cast<double>(GetX()) + b * static_cast<double>(GetY()) + c) / pow(a * a + b * b, 0.5);
+  }
+
   template <typename TargetType, typename SourceType>
   static void ConvertInternal(ImageAccessor& target,
                               const ImageAccessor& source)
--- a/Core/Images/ImageProcessing.h	Thu Nov 07 10:50:50 2019 +0100
+++ b/Core/Images/ImageProcessing.h	Thu Nov 07 17:02:19 2019 +0100
@@ -72,6 +72,8 @@
       }
 
       double GetDistanceTo(const ImagePoint& other) const;
+
+      double GetDistanceToLine(double a, double b, double c) const; // where ax + by + c = 0 is the equation of the line
     };
 
     void Copy(ImageAccessor& target,