演算法筆記 計算幾何之點積叉積的應用

2022-03-05 03:47:25 字數 1105 閱讀 3908

模板:

const

double 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為這三點圍成的三角形的面積。簡要證明 上圖中,黑色的三角形面積為矩形 三個三角形,設數,計算,合併同類項...