
计算几何
Array98
萌哒哒~~
展开
-
【计算几何】多边形与凸包
多边形的面积计算:double PolygonArea(Point* p, int n) { double area=0; for (int i=1; i<n-1; i++) area+=Cross(p[i]-p[0],p[i+1]-p[0]); return area/2;}点在多边形内判定:double PolygonArea(Point* poly,原创 2015-03-21 15:14:08 · 596 阅读 · 0 评论 -
【计算几何】点与向量的表示
来自大白书的模板:点的定义:struct Point{ double x,y; Point (double x=0, double y=0):x(x),y(y) { }};向量的定义:typedef Point Vector; //从程序的实现上定义与点一致四则运算:Vector operator + (Vector A, Vector B) { return Vector(A.原创 2015-03-21 11:06:51 · 1130 阅读 · 0 评论 -
【计算几何】点和直线
直线的参数方程:P=P_0+tv P_0表示直线上一点,v表示方向向量,它的长度没有意义,t是参数。有这个我们很容易知道两点(A,B)直线方程:A+(B-A)t 这个方程不仅适用与直线。对于射线,t>0;对于线段,1>t>0.直线定义:struct Line { Point P; Vector v; Line (Point P=0, Vector v=0):P(P),v(v原创 2015-03-21 11:21:59 · 601 阅读 · 0 评论 -
【计算几何】半平面交
有向直线的定义:struct Line{ Point P;//直线上任意一点 Vector v;//方向向量,左边是对应的半平面 double ang;//极角。从x正半轴旋转到向量v所需要的角度(弧度) Line() {} Line(Point P, Vector v):P(P),v(v) { ang=atan2(v.y,v.x); } bo原创 2015-03-22 19:41:52 · 697 阅读 · 0 评论