/*
計算幾何相關知識及基本演算法
*/#i nclude
#i nclude
#i nclude
#define maxnode 100
// 自定義常量,型別及通用函式
const double eps = 1e-6;
typedef struct tpoint
tpoint;
typedef struct t********
t********;
typedef struct tpolygon
tpolygon;
typedef struct tline
tline;
typedef struct tcircle
tcircle;
bool same(double x, double y)
double max(double x, double y)
double min(double x, double y)
double distance(tpoint p1, tpoint p2)
double multi(tpoint p1, tpoint p2, tpoint p0)
/* 折線的拐向的判斷(從 p0 向 p1 看過去的左邊)
若 (p2 - p1) 叉乘 (p1 - p0) < 0 , 則 p0p1 在 p1 點拐向左側後得到 p1p2
若 (p2 - p1) 叉乘 (p1 - p0) = 0 , 則 p0, p1, p2
三點共線
若 (p2 - p1) 叉乘 (p1 - p0) > 0 , 則 p0p1 在 p1 點拐向右側後得到 p1p2
*/tline linefromsegment(tpoint p1, tpoint p2)
// 角形面積的計算
// s = ah / 2
// s = absinc / 2
// s = sqrt(p * (p - a) * (p - b) * (p - c)), p = (a + b + c) / 2
// s = abc / r / 4
double ********area(t******** t)
double polygonarea(tpolygon p, int n)
return fabs(area) / 2;
}tcircle circumcircleof********(t******** t)
} top++;
stack[top] = i;
}int main()
演算法 計算幾何
剛寫了乙個計算幾何的模板,這樣可以減少很多的函式,實現起來也很清楚,以後自己就這樣寫好了 常用計算 define vector point struct point vector operator vector a,vector b vector operator vector a,vector b...
計算幾何知識歸納
目錄 線段及直線的基本運算 1.點與線段的關係 2.求點到線段所在直線垂線的垂足 3.點到線段的最近點 4.點到線段所在直線的距離 5.點到折線集的最近距離 6.判斷圓是否在多邊形內 7.求向量夾角余弦 8.求線段之間的夾角 9.判斷線段是否相交 10.判斷線段是否相交但不交在端點處 11.求線段所...
計算幾何 預備知識
pi的定義 const double pi acos 1.0 最大值的定義 const double inf 0x3f3f3f3f 向上取整 int a ceil double t 向下取整 int a floor double t 四捨五入 int a round double t 內積運算 又稱...