首页 > 其他 > 详细

求两个一次函数的交点

时间:2017-07-04 23:57:16      阅读:399      评论:0      收藏:0      [点我收藏+]
Point2f pointIntersection(Point2f p1, Point2f p2, Point2f p3, Point2f p4)
{
    //p1,p2所在一条直线,p3,p4所在一条直线,求两条直线的交点
    //p1,p2所成的直线
    BOOL flag1=FALSE,flag2=FALSE;
    Point2f p;//存放最后的交点
    float k1,k2,b1,b2;
    if(p2.x==p1.x)//分母不能为0
    p.x=p2.x;
    else
    {
        flag1=TRUE;
        k1=(p2.y-p1.y)/(p2.x-p1.x);
        b1=p2.y-k1*p2.x;
    }
    
    //p3,p4所成的直线
    if(p4.x==p3.x)
    p.x=p3.x;
    else
    {
        flag2=TRUE;
        k2=(p4.y-p3.y)/(p4.x-p3.x);
        b2=p4.y-k2*p4.x;
    }
    
    
    //两直线的交点
    
    if(flag1==FALSE&&flag2==TRUE)
    {
         p.y=k2*p.x+b2;
         return p;
    }
    if(flag1==TRUE&&flag2==FALSE)
    {
        p.y=k1*p.x+b1;
        return p;
    }
    if(flag1==TRUE&&flag2==TRUE)
    {
        p.x=(b2-b1)/(k1-k2);
        p.y=k1*p.x+b1;
        return p;}
}

 

求两个一次函数的交点

原文:http://www.cnblogs.com/gaohai/p/7119071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!