- 论坛徽章:
- 145
|
回复 11# tengfei0311
$ echo 0 1 5 10 170 175 180 | awk 'BEGIN{pi=atan2(0,-1)}function d2r(d){return d/180*pi}function r2d(r){return r/pi*180}function tan(r){return sin(r)/cos(r)}{for(n=1;n<=NF;n++){t=tan(d2r($n));d=r2d(atan2(t,1));d180=d>=0?d:180+d;printf("tan(%3d)=%9.6f ,arctan=%3.0f(90~0~-90), artan=%3.0f(0~180)\n",$n,t,d,d180)}}'
tan( 0)= 0.000000 ,arctan= 0(90~0~-90), artan= 0(0~180)
tan( 1)= 0.017455 ,arctan= 1(90~0~-90), artan= 1(0~180)
tan( 5)= 0.087489 ,arctan= 5(90~0~-90), artan= 5(0~180)
tan( 10)= 0.176327 ,arctan= 10(90~0~-90), artan= 10(0~180)
tan(170)=-0.176327 ,arctan=-10(90~0~-90), artan=170(0~180)
tan(175)=-0.087489 ,arctan= -5(90~0~-90), artan=175(0~180)
tan(180)=-0.000000 ,arctan= -0(90~0~-90), artan=180(0~180)
0.5*atan2(a,b)
change to
0.5*atan2(a/b,1) # note: b cannot be 0
|
|