逆时针转90度 (-y,x);
关于精度误差
判断(a,b)相等 (fabs(a-b)<eps)
判断(a,b)不相等 (fabs(a-b)>eps)
判断(:::a<b:a+eps<b)
判断:(aleq b:a<b+eps)
点积
(acdot b=|a||b|cos heta)
就等于(a)的模长乘上(b)在(a)上投影的长度
满足分配律,交换律 ((a+b)cdot c=acdot c+bcdot c)
假如(a(x_1,y_1),b(x_2,y_2)) 那么(acdot b=x_1x_2+y_1y_2)
(aot b Leftrightarrow acdot b=0)
夹角小于90度点积大于0
夹角大于90度点积小于0
叉积
(a imes b=|a||b|sin heta)
(a,b)为向量,( heta)为(a)旋转到(b)的夹角
(b)在(a)左边为正,右边为负
表示的是(ab)围成的平行四边形的面积
(a imes b=b imes -a)
满足分配律
假如(a(x_1,y_1),b(x_2,y_2)) 那么(a imes b=x_1y_2-x_2y_1)
可以用叉积判断两个向量的左右关系,判断平行
可以用来求三角形面积
甚至可以求点到直线的距离!!
向量旋转
把(a)旋转( heta)
先把(a)缩放到1,设原角为(alpha)
然后(a')就是((cos(alpha+ heta),sin(alpha+ heta)))
就是((xcos heta-ysin heta,xsin heta+ycos heta))
直线交点
特判是否平行
多边形面积
对于一个多边形定点按逆时针排序
圆的交点
用余弦定理(^{[1]}) 算出( heta)然后把(D)转过去就行了
余弦定理表达式
两圆公切线
咕
皮克定理
2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。
凸包
能包围住所有点的最小的凸多边形
Andrew
把所有点按横坐标第一关键字,纵坐标第二关键字排序
第一个点肯定在凸包上,用栈维护下凸包
然后倒过来枚举,求上凸包