码迷,mamicode.com
首页 > 其他好文 > 详细

求两个一次函数的交点

时间:2017-07-05 00:29:06      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:ret   int   不能   point   一条直线   else   2.x   tin   交点   

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;}
}

 

求两个一次函数的交点

标签:ret   int   不能   point   一条直线   else   2.x   tin   交点   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!