概述
当判定两条线段相交后,可以进行交点的求解。
bool Intersection(double x1, double y1, double x2, double y2,
double x3, double y3, double x4, double y4,
double& dbX, double& dbY)
{
double a=x2-x1;
double b=x3-x4;
double c=y2-y1;
double d=y3-y4;
double g=x3-x1;
double h=y3-y1;
double f=a*d-b*c; //行列式
if(fabs(f)<1.0e-06) // delta=0,表示两线段重合或平行:delta<=(1e-6) && delta>=-(1e-6)
{
//Inverse matrix cannot be computed.
return false;
}
double t=(d*g-b*h)/f;
double s=(-c*g+a*h)/f;
if((0>t)||(t>1))
{
//tow line do not intersect.
return false;
}
if((0>s)||(s>1))
{
//tow line do not intersect.
return false;
}
dbX=x1+t*(x2-x1);
dbY=y1+t*(y2-y1);
return true;
}
最后
以上就是俊逸小蚂蚁为你收集整理的两直线四坐标点判断相交并求交点的全部内容,希望文章能够帮你解决两直线四坐标点判断相交并求交点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复