| 
 
	积分27贡献 精华在线时间 小时注册时间2012-9-6最后登录1970-1-1 
 | 
 
 发表于 2012-11-16 10:11:10
|
显示全部楼层 
| 本帖最后由 bighug 于 2012-11-16 21:48 编辑 
 atan2函数的值域是多少?我从网上找到一个fortran函数的日志,说此值域是-π~π,但正常反正切函数的值域应该是-π/2~π/2。对atan2函数不够了解,所以不知道你的答案对不对,我个人认为不对。我是用正常的反正切函数atan(v/u)来算的:
 FORTRAN:
 if (u>0..and.v>0.) dir=270-atan(v/u)*180/pi
 if (u<0..and.v>0.) dir=90-atan(v/u)*180/pi
 if (u<0..and.v<0.) dir=90-atan(v/u)*180/pi
 if (u>0..and.v<0.) dir=270-atan(v/u)*180/pi
 if (u==0..and.v>0.) dir=180
 if (u==0..and.v<0.) dir=0
 if (u>0..and.v==0.) dir=270
 if (u<0..and.v==0.) dir=90
 if (u==0..and.v==0.) dir=999
 其中uv等于零的五种情况要单独挑出来,不然程序会有瑕疵。atan函数换成atand函数的话直接是度数,不用*180/pi
 我四个象限和轴都试了,应该没错。
 最需要注意的问题,一个是函数值域,另一个是uv矢量方向和风向是反着的,并且风向角度数是从正Y轴开始顺时针算,和三角函数里度数从正X轴开始逆时针算不一样。
 | 
 |