1、0-360表示:
用角度表示风向,是把圆周分成360度,北风(N)是0度(即360度),东风(E)是90度,南风(S)是180度,西风(W)是270度,其余的风向都可以由此计算出来。
2、U和V表示:U是东西风上的分量,西风为正。V是南北风上的分量,南风为正。
if(u>=0&&v>=0)
{
r='西南风';
}
else if(u<=0&&v>=0)
{
r='东南风';
}
else if(u>=0&&v<=0)
{
r='西北风';
}
else if(u<=0&&v<=0)
{
r='东北风';
}
3、风向汉字的计算
public static Map getWindSpeed(float u,float v){ float speed=(float)Math.sqrt(u*u+v*v); float direction=0; String direct=""; double angle = Math.atan2(u,v); double angles= 180+angle*180/Math.PI; if(angles<0) { angles=angles+360; } direction=(float)angles; if(angles>=15&&angles<75) { direct="东北风"; } else if(angles>=75&&angles<105) { direct="东风"; } else if(angles>=105&&angles<165) { direct="东南风"; } else if(angles>=165&&angles<195) { direct="南风"; } else if(angles>=195&&angles<255) { direct="西南风"; } else if(angles>=255&&angles<285) { direct="西风"; } else if(angles>=285&&angles<345) { direct="西北风"; } else { direct="北风"; } Map item = new HashMap(); item.put("direct",direct); item.put("speed",speed); item.put("direction",direction); return item;}