このライブラリのドキュメント・実装は ICPC のために、チーム HokkaidoDekkaido のメンバーによって verify の上、提供されました。
bool almostEqual(long double a, long double b)
bool lessThan(long double a, long double b)
bool greaterThan(long double a, long double b)
bool lessThanOrEqual(long double a, long double b)
bool greaterThanOrEqual(long double a, long double b)
Point(long double x, long double y)
Point::dot(Point p)
Point::cross(Point p)
Point::cross(Point p1, Point p2)
Point::norm()
Point::abs()
Point::arg()
Segment(Point a, Point b)
Segment(long double A, long double B, long double C)
Line(Point a, Point b)
Line(long double A, long double B, long double C)
(一般には==が壊れるので注意)
Circle(long double x, long double y, long double r)
Circle(Point _center, long double r)
Orientation ccw(Point p0, Point p1, Point p2)
Point projection(Point p1, Point p2, Point p)
Point projection(Line l, Point p)
Point reflection(Point p1, Point p2, Point p)
Point reflection(Line l, Point p)
bool isParallel(Line(Segment) l1, Line(Segment) l2)
bool isOrthogonal(Line(Segment) l1, Line(Segment) l2)
bool isPointOnLine(Point p, Line l)
bool isPointOnSegment(Point p, Line l)
bool isIntersecting(Segment s1, Segment s2)
Point getIntersection(Segment s1, Segment s2)
long double distancePointToSegment(Point p, Segment s)
long double distanceSegmentToSegment(Segment s1, Segment s2)
long double getPolygonArea(vector<Point> points)
bool isConvex(vector<Point> points)
bool isPointOnPolygon(vector<Point> polygon, Point p)
bool isPointInsidePolygon(vector<Point> polygon, Point p)
vector<Point> convexHull(vector<Point> points, bool include_collinear = false)
long double convexHullDiameter(vector<Point> hull)
vector<Point> cutPolygon(vector<Point> g, Point p1, Point p2)
long double closestPair(vector<Point> points, int l, int r)
int countIntersections(vector<Segment> segments)
int countCirclesIntersection(Circle c1, Circle c2)
Circle getInCircle(Point A, Point B, Point C)
Circle getCircumCircle(Point A, Point B, Point C)
vector<Point> getCircleLineIntersection(Circle c, Point p1, Point p2)
vector<Point> getCirclesIntersect(Circle c1, Circle c2)
vector<Point> getTangentLinesFromPoint(Circle c, Point p)
vector<Segment> getCommonTangentsLine(Circle c1, Circle c2)