计算几何
tips
注意舍入方式(0.5 的舍入方向);防止输出-0.
几何题注意多测试不对称数据.
整数几何注意 xmult 和 dmult 是否会出界; 符点几何注意 eps 的使用.
避免使用斜率;注意除数是否会为 0.
公式一定要化简后再代入.
判断同一个 2*PI 域内两角度差应该是 abs(a1-a2)<beta||abs(a1-a2)>pi+pi-beta;
相等应该是abs(a1-a2)<eps||abs(a1-a2)>pi+pi-eps;
需要的话尽量使用 atan2,注意:atan2(0,0)=0, atan2(1,0)=pi/2,atan2(-1,0)=-pi/2,atan2(0,1)=0,atan2(0,-1)=pi.
cross product = |u|*|v|sin(a) dot product = |u||v|*cos(a)
(P1-P0)x(P2-P0)结果的意义:
正: <P0,P1>在<P0,P2>顺时针(0,pi)内 负: <P0,P1>在<P0,P2>逆时针(0,pi)内 0 : <P0,P1>,<P0,P2>共线,夹角为 0 或 pi
误差限缺省使用 1e-8!
基本公式
1.三角形
半周长
$$
P = (a + b + c) / 2
$$
面积
$$
S = ah/2 = (absinC)/2 = sqrt((P-a)(P-b)(P-c))
$$
中线
$$
Ma = sqrt(2(b^2+c^2)-a^2)/2 = sqrt(b^2+c^2+2bcos(A))/2
$$
角平分线
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XYJ!