Basic Geometry¶
Useful Macros¶
#include <cfloat>
FLT_MIN
DBL_MIN
LDBL_MIN
FLT_MAX
DBL_MAX
LDBL_MAX
FLT_EPSILON
DBL_EPSILON
LDBL_EPSILON
Floating Point Comparision¶
Note
Tested with other computational geometry algorithms
#include <cmath>
#define DBL_DELTA 1e-9
#define DBL_EQ(a, b) (fabs((a) - (b)) < DBL_DELTA) // a == b
#define DBL_LT(a, b) (((b) - (a)) > DBL_DELTA) // a < b
#define DBL_GT(a, b) (((a) - (b)) > DBL_DELTA) // a > b
#define DBL_POS(a) ((a) > -DBL_DELTA) // a >= 0
#define DBL_NEG(a) ((a) < DBL_DELTA) // a <= 0
Euclidian Distance¶
Note
Tested on: URI1552
inline int square_distance(int x0, int y0, int x1, int y1)
{
return (x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0);
}