计算几何 1
1 注意 1
注意舍入方式(0
5 的舍入方向);防止输出-0
几何题注意多测试不对称数据
整数几何注意xmult 和 dmult 是否会出界; 符点几何注意eps 的使用
避免使用斜率;注意除数是否会为0
公式一定要化简后再代入
判断同一个2*PI 域内两角度差应该是 abs(a1-a2)pi+pi-beta; 相等应该是 abs(a1-a2)pi+pi-eps; 7
需要的话尽量使用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) 9
(P1-P0)x(P2-P0)结果的意义: 正 : 在 顺时针(0,pi)内 负 : 在 逆时针(0,pi)内 0 : ,共线,夹角为0 或 pi 10
误差限缺省使用1e-8
2 几何公式 三角形: 1
半周长 P=(a+b+c)/2 2
面积 S=aHa/2=absin(C)/2=sqrt(P(P-a)(P-b)(P-c)) 3
中线 Ma=sqrt(2(b^2+c^2)-a^2)/2=sqrt(b^2+c^2+2bccos(A))/2 4
角平分线 Ta=sqrt(bc((b+c)^2-a^2))/(b+c)=2bccos(A/2)/(b+c) 5
高线 Ha=bsin(C)=csin(B)=sqrt(b^2-((a^2+b^2-c^2)/(2a))^2) 6
内切圆半径 r=S/P=asin(B/2)sin(C/2)/sin((B+C)/2) =4Rsin(A/2)sin(B/2)sin(C/2)=sqr