模板:
constdouble eps = 1e-10;//
考慮誤差的加法
double add(double a, double
b) //
考慮誤差的與0比較
int dcmp(double
x) struct
p p(
double x, double
y) :x(x), y(y){}
bool
operator ==(p p)
p operator +(p p)
p operator -(p p)
p operator * (double
p) p
operator / (double
p)
//點積
double
dot(p p)
//叉積
double
cross(p p)
};typedef p vector;
//向量逆時針旋轉
vector rotate(vector a,double
rad)
//向量的模
double
len(vector a)
//兩向量的夾角
double
angle(vector a, vector b)
//絕對值為三點確定的三角形的面積的兩倍
double
area2(vector a, vector b, vector c)
//bool
on_seg(p p, vector a, vector b)
//判斷兩條線段是否相交
bool
intersect(vector a, vector b, vector c, vector d)
//判斷兩條線段是否有交點
bool
_intersect(vector a, vector b, vector c, vector d)
//極角排序,建議用long long
bool
anglecmp(p a, p b)
計算幾何 點積與叉積
a和b為兩個向量,a x1,y1 b x2,y2 a b的幾何意義為a在b上的投影長度乘以b的模長 a b a b cos 其中 為a,b之間的夾角 a b x1 x2 y1 y2 點積的應用 1 判斷兩個向量是否垂直 a b a b 0 2 求兩個向量的夾角,點積 0為鈍角,點積 0為銳角 向量積...
計算幾何基礎 點積和叉積的用處
計算幾何是演算法競賽的一大塊,而叉積是計算機和的基礎。首先叉積是計算說向量之間的叉積,那麼我們可以這樣定義向量,以及向量的運算子過載。struct point typedef point vector vector operator vector a,vector b vector operator...
caioj 計算幾何 面積 計算幾何 叉積
題意 在乙個平面座標系上隨意畫一條有n個點的封閉折線 按畫線的順序給出點的座標 保證封閉折線的任意兩條邊都不相交。最後要計算這條路線包圍的面積。用叉積有關知識解決。重要結論 abs 三點的叉積 2為這三點圍成的三角形的面積。簡要證明 上圖中,黑色的三角形面積為矩形 三個三角形,設數,計算,合併同類項...