呵呵,有点急。。。
#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);
}
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);
}