Cho điểm P(x1,y1) và đường thẳng ax+by+c=0. Tìm chân đường thẳng đứng từ P đến đường thẳng.
Đường thẳng vuông góc qua P: ay - bx + d = 0, với d = bx1 - ay1. Giao điểm của hai đường thẳng là chân. Công thức: (x-x1)/a = (y-y1)/b = -(ax1+by1+c)/(a^2+b^2).
Ví dụ
#include<iostream> using namespace std; void getFootCoordinate(double a, double b, double c, double x1, double y1) { double p = -1 * (a * x1 + b * y1 + c) / (a * a + b * b); double x = p * a + x1; double y = p * b + y1; cout << "(" << x << ", " << y <<")"; } int main() { double a = 0.0; double b = 1.0; double c = -2; double x1 = 3.0; double y1 = 3.0; cout << "The coordinate is: "; getFootCoordinate(a, b, c, x1, y1); }
Kết quả
The coordinate is: (3, 2)