第十二届蓝桥杯C-C++-B组省赛-第一场-试题C-直线求解
第十二届蓝桥杯C-C+±B组省赛-第一场-试题C-直线求解
首先定义表示一个顶点的结构体
1234567891011struct Point { int x, y; Point(int x, int y) : x(x), y(y) { } //向量减法 Point operator-(Point &point) const { return {x - point.x, y - point.y}; }};
根据两点确定一条直线,我们可以写一个表示直线的类,使用直线的一般式Ax+By+C=0,表示任意的一条直线,其中数据成员有A,B,C三个系数,为了数据精度以及便于判断相等,尽量避免使用浮点数运算。
那么,已知两个整数坐标表示的点P1(x1,y1),P2(x2,y2)P_1(x_1,y_1),P_2(x_2,y_2)P1(x1,y1),P2(x2,y2)我们可通过两点式按如下数学推导,计算出直线方程。
根据两点式
\begin{equati ...