- 积分
- 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轴开始逆时针算不一样。 |
|