现在有两个二维点A,B,求A点沿AB直线前进1单位距离后的点C,用C++代码表示
时间: 2023-05-31 20:07:55 浏览: 151
求两点距离(C语言)
5星 · 资源好评率100%
假设A点的坐标为(x1, y1),B点的坐标为(x2, y2),则AB直线斜率为k=(y2-y1)/(x2-x1)。
设C点坐标为(x3, y3),则根据直线斜率k有:
k = (y3-y1)/(x3-x1)
将k带入AB直线方程,可得到:
y3 = k(x3-x1)+y1
因为C点到A点的距离为1,可得:
(x3-x1)^2 + (y3-y1)^2 = 1
代入上面的公式可以得到C点的坐标:
x3 = (sqrt(1+k*k)/(k^2+1))+x1
y3 = k x3 + y1 - k x1
所以用C代码表示为:
double k = (y2 - y1) / (x2 - x1);
double x3 = sqrt(1 / (1 + k * k)) + x1;
double y3 = k * x3 + y1 - k * x1;
阅读全文