呵呵,有点急。。。

#include<stdio.h>

typedef 
struct point{
    
int x;
    
int y;
}point;

typedef 
struct line{
    point point1;
    point point2;
}line;

//计算两条直线的交点
point getCross(line line1, line line2)
{
    point CrossP;
    
//y = a * x + b;
    int a1 = (line1.point1.y - line1.point2.y) / (line1.point1.x - line1.point2.x);
    
int b1 = line1.point1.y - a1 * (line1.point1.x);

    
int a2 = (line2.point1.y - line2.point2.y) / (line2.point1.x - line2.point2.x);
    
int b2 = line2.point1.y - a1 * (line2.point1.x);

    CrossP.x 
= (b1 - b2) / (a2 - a1);
    CrossP.y 
= a1 * CrossP.x + b1;
    
return CrossP;
}

void main()
{
    line line1;
    line line2;

    
//line1
    line1.point1.x = 10;
    line1.point1.y 
= 10;
    line1.point2.x 
= 50;
    line1.point2.y 
= 50;

    
//line2
    line2.point1.x = 2;
    line2.point1.y 
= 60;
    line2.point2.x 
= 60;
    line2.point2.y 
= 0;

    point CointP 
= getCross(line1, line2);
    printf(
"%d,%d\n", CointP.x, CointP.y);

}

 

posted on 2010-06-12 11:30  漫长路  阅读(12031)  评论(2编辑  收藏  举报
宝宝客 www.baobaoke.com