呵呵,有点急。。。

#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);

}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-03
  • 2022-12-23
  • 2021-08-09
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
相关资源
相似解决方案