浮點誤差與精度問題
實數是用浮點數運算的,精度受到限制,特別是乘除法之後,誤差比較大。此時》=《是可能出現誤差的。我們可以認為非常接近0的實數都是0,寫乙個實數的三出口函式。
**:
const double eps=1e-8;
int dcmp(double d)
叉積判斷方向
p1×p2 = x1y2 - x2y1 = - p2×p1
若p1×p2為正,則相對於原點(0,0)來說,p2位於p1逆時針方向;若p1×p2為負,p2位於p1順時針方向;若為0則方向相同,或相反。
(1)(q - p1) * (p2 - p1)= 0;
(2)q在以p1,p2為對角頂點的矩形內;
struct point
;
bool onsegment(point pi , point pj , point q)
計算幾何常用公式 模板
const double pi acos 1 const double eps 1e 6 精度 int sgn double a,double b 當確定直線和線段相交時,求他們的交點 利用叉積可判斷,線段兩端點是否在直線的兩側 struct point p n double cross point...
計算幾何模板
sgn返回x經過eps處理的符號,負數返回 1,正數返回1,x的絕對值如果足夠小,就返回0。const double eps 1e 8 int sgn double x double mysqrt double x pt是point的縮寫 int版 struct pt pt int x,int y ...
計算幾何模板
include define vct point using namespace std const double pi atan2 0,1 const double eps 1e 8 int sgn double d struct point bool operator point b const...