查找从2D平面中的点到C ++中的直线的垂直脚

考虑到我们在2D平面中有一个点P和一条直线方程,任务是找到从P到直线的垂直线的底角。

直线方程为ax + by + c =0。穿过P且垂直于直线的线方程。通过P和Q的直线方程为ay – bx + d =0。同时P(x1,y1)和Q(x2,y2),因此我们将P的坐标放在方程上。

ay 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)

以上是 查找从2D平面中的点到C ++中的直线的垂直脚 的全部内容, 来源链接: utcz.com/z/317138.html

回到顶部