可以用在图像处理中的计算两条直线的交点

来源:互联网 发布:php 客户端接口开发 编辑:程序博客网 时间:2024/05/22 01:54

可以通过在Line 类中添加一个方法来判断两条直线的交点,图5-8 阐明了数学原理。
 

图 5-8

如果想要,可以忽略这些数学,因为它们不是这个例子中最重要的部分。如果愿意信任新方法中的代码,可以跳到下一个“试一试”部分。另一方面,如果仍然能够记得在高中数学中所学的内容,就不应该觉得这个问题很难。

获得两条直线交点的一种方法是使用图5-8 中所示的方程。这些方程称为参数方程,因为它们使用参数(s 或t)作为决定每条直线上点的变量。参数s 和t 的取值在0 到1 之间,它们给出直线上处在定义的起始点和终点之间的点。当参数s 或t 是0 时,方程会给出一条直线的起始点坐标;当参数的值为1 时,可以获得直线的终点坐标。

在两条直线相交的地方,直线的方程会产生同样的(x, y)值,所以在这个点上,两条直线方程中x 的右边肯定相等,而且这对y 也是一样。这就给出两个关于s 和t 的方程,进行一点代数计算,可以除去s 并得到关于t 的方程。然后用它代替定义第一条直线的方程中的t,就可以得到交叉点的x和y 坐标值。