Orthogonal projection

Orthogonal projection

This post provides code examples in Python and C++ demonstrating how to compute the shortest distance between a point and a line using orthogonal projection mathematical principles. The implementation uses the formula |ax+byc|a2+b2 where the line is represented as ax+by=c.

  • def orthogonal_projection(p:tuple, line:tuple) -> float:
    	"""Compute the shortest distance between a point and a line ax + by = c"""
    	a, b, c = line
    	return abs(a*p[0] + b*p[1] - c)/sqrt(a**2 + b**2)
    
  • double orthogonal_projection(const std::pair<double, double>& p, const std::tuple<double, double, double>& line) {
    	// Compute the shortest distance between a point and a line ax + by = c
    	double a = std::get<0>(line);
    	double b = std::get<1>(line);
    	double c = std::get<2>(line);
    	return std::abs(a*p.first + b*p.second - c)/std::sqrt(a*a + b*b);
    }