在本节中,我们将看到如何检查线段是否通过原点。我们有两个坐标点代表线段的端点。
该方法很简单。如果我们可以形成直线方程,并通过将(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