检查线是否通过C ++中的原点

在本节中,我们将看到如何检查线段是否通过原点。我们有两个坐标点代表线段的端点。

该方法很简单。如果我们可以形成直线方程,并通过将(0,0)放到方程中,并且方程满足,则直线穿过原点。

假设点是,则通过这两条线的线方程为-

$$y-y_ {1} = \ left(\ frac {y_ {2} -y_ {1}} {x_ {2} -x_ {1}} \ right)* \ lgroup x-x_ {1} \ rgroup + c $$

将x = 0和y = 0,我们得到

$$x_ {1} \ lgroup y_ {2} -y_ {1} \ rgroup = y_ {1} \ lgroup x_ {2} -x_ {1} \ rgroup $$

示例

#include<iostream>
using namespace std;
bool checkPassOrigin(int x1, int y1, int x2, int y2) {
   return (x1 * (y2 - y1) == y1 * (x2 - x1));
}
int main() {
   if (checkPassOrigin(10, 0, 20, 0) == true)
      cout << "Passes Through Origin";
   else
      cout << "Not Passing Through Origin";
}

输出结果

Passes Through Origin