首页 > 解决方案 > C++:如何知道一个点是否与两条线段相交?

问题描述

我有两个由它们的方程给出的线段 A1x + B1y + C1 = 0A2x + B2y + C2 = 0,这两个线段的交点坐标I可以计算如下:

x1 =B2*C1 − B1*C2 / A2*B1 − A1*B2

y1 =A1*C2 − A2*C1 / A2*B1 − A1*B2

我正在使用双值,如何知道I=(x1,y1)两条线段是否相交?

我尝试替换线段方程中x1和的值,y1但它似乎不起作用

标签: c++

解决方案


你需要括号:

x1 = (B2*C1 − B1*C2) / (A2*B1 − A1*B2);
y1 = (A1*C2 − A2*C1) / (A2*B1 − A1*B2);

推荐阅读