如图,如何求得直线 AB与直线 CD的交点P?
以上内容摘自《算法艺术与信息学竞赛》。
思路就是利用叉积求得点P分线段DC的比,然后利用高中学习的定比分点坐标公式求得分点P的坐标。
看不懂的可以去复习下 定比分点 的知识。
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 105
const double eps = 1e-6;
const double Pi = acos(-1.0);
struct Point
{
Point(){}
Point(double x,double y):x(x),y(y){}
double x,y;
};
struct Seg
{
Point p1,p2;
};
int sgn(double x)
{
return fabs(x)<eps ? 0 : (x > 0 ? 1 : -1);
}
double Cross(const Point& p1,const Point& p2,const Point& p3,const Point& p4