C++程序:求过两点直线


在这个问题中,我们给定坐标平面上的两点 A 和 B 的坐标。我们的任务是创建一个 C++ 程序来求过这两点的直线。

问题描述

为了求出直线,我们需要使用直线方程,并利用坐标来求解。

让我们举个例子来理解这个问题

输入:A = (3, 3) B = (6, 1) 

输出:2x + 3y = 15

解决方案

为了求出直线方程,我们将使用直线的一般方程−

ax + by = c

这个方程必须同时满足点 A(x1, y1) 和 B(x2, y2) 的坐标。

这将得到以下方程:

ax1 + by1 = c

ax2 + by2 = c

现在,由于 c 对两个方程都是相同的,所以我们有

ax1 + by1 = ax2 + by2

=> ax1 - ax2 = by2 - by1

化简得到:

$$a = (y2 - y1)$$ $$b = (x1 - x2)$$

c 可以通过以下方程求得:

$$ax1 + by1 = c$$

所以,直线方程为:

$$a = (y2 - y1)$$ $$b = (x1 - x2)$$ $$c = ax1 + by1$$

示例

 在线演示

#include <iostream> using namespace std;
void findLine(int points[2][2]) {
   int a = points[1][1] - points[0][1];
   int b = points[0][0] - points[1][0]; int c = a*points[0][0] + b*points[0][1];
   cout<<"("<<a<<"x) + ("<<b<<"y) = ("<<c<< 
}
int main() {
   int points[2][2] = {{5, 9}, {1, 4}}; cout<<"The equation of line is "; findLine(points);
   return 0;
}

输出

The equation of line is (-5x) + (4y) = (11)

更新于: 2020年10月9日

764 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告