/*
向量a ,向量b
c=a-b c的方向指向的是a 指向的是被减数
*/
#include<bits/stdc++.h>
#define eps (1e-10)
using namespace std;
class Point
{
public:
double x,y;
Point(double _x=0,double _y=0):x(_x),y(_y){}
Point operator + (Point p){ return Point(x+p.x,y+p.y);}
Point operator - (Point p){ return Point(x-p.x,y-p.y);}
Point operator * (double a){return Point(a*x,a*y);}
Point operator / (double a){return Point(x/a,y/a);}
double norm(){return x*x+y*y;}
double ABS(){return sqrt(norm());} //俩点间的距离
};
struct Segment
{
Point p1,p2;
Segment(){}
Segment(Point _p1,Point _p2):p1(_p1),p2(_p2){}
};
double dot(Point a,Point b)//求内积 就是向量a*b
{
return a.x*b.x+a.y*b.y;
}
//外积的值为a与b向量构成的平行四边形面积的值
double cross(Point a,Point b)//求外积
{
return a.x*b.y-a.y*b.x;
}
//判断是否正交 向量内积:a*b=|a||b|*cos(Y) 当cos为0时正交(90,-90垂直)
//a*b=a.x*b.x+a.y*b.y;
bool solve1(Point a,Point b)//是否正交
{
double f=a.x*b.x
挑战程序设计 CGL_2_C:Cross Point
最新推荐文章于 2024-01-08 12:47:19 发布
本文深入探讨了CGL_2_C问题,主要集中在如何找到两条线段的交叉点。通过数学和编程相结合的方法,阐述了解决此类问题的关键步骤和策略,为程序员提供了实用的算法指导。
摘要由CSDN通过智能技术生成