พิจารณาว่าเรามีจุด P ในระนาบ 2 มิติและสมการของเส้นตรง ภารกิจคือการหาเท้าของเส้นตั้งฉากจาก P ถึงเส้นตรง
สมการของเส้นตรงคือ ax + โดย + c =0 สมการของเส้นตรงที่ลากผ่าน P และตั้งฉากกับเส้นตรง สมการของเส้นที่ลากผ่าน P และ Q จะเป็น ay – bx + d =0 นอกจากนี้ P(x1, y1) และ Q(x2, y2) เราจึงใส่พิกัดของ P ลงในสมการ
คือ 1−bx 1+d=0, ดังนั้น d=bx1−ay 1
นอกจากนี้ Q คือจุดตัดของเส้นที่กำหนดและเส้นที่ผ่าน P และ Q ดังนั้นเราจะพบคำตอบสำหรับสมการทั้งสองนี้
ax+by+c=0,∧ay−bx+(bx1−ay 1)=0
เท่าที่ทราบ a, b, c, d เราสามารถหาได้โดยใช้สูตรนี้ -
$$\frac{x-x_{1}}{a}=\frac{y-y_{1}}{b}=\frac{f-(ax_{1}+by_{1}+c)}{ a^{2}+b^{2}}$$
ตัวอย่าง
#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); }
ผลลัพธ์
The coordinate is: (3, 2)