风速风向 UV 相互转换
2024-09-06 10:13:36
这里以c#为例将风的uv分量转成风向风速(别的语言类似)
风向是以y轴正方向为零度顺时针转
UV转风速风向
1 double v ;//v分量
2 double u;//u分量
3 double fx= 999.9; //风向
4
5 if (u > 0 & v > 0)
6 {
7 fx = 270 - Math.Atan(v / u) * 180 / Math.PI;
8 }
9 else if (u < 0 & v > 0)
10 {
11 fx = 90 - Math.Atan(v / u) * 180 / Math.PI;
12 }
13 else if (u < 0 & v < 0)
14 {
15 fx = 90 - Math.Atan(v / u) * 180 / Math.PI;
16 }
17 else if (u > 0 & v < 0)
18 {
19 fx = 270 - Math.Atan(v / u) * 180 / Math.PI;
20 }
21 else if (u == 0 & v > 0)
22 {
23 fx = 180;
24 }
25 else if (u == 0 & v < 0)
26 {
27 fx = 0;
28 }
29 else if (u > 0 & v == 0)
30 {
31 fx = 270;
32 }
33 else if (u < 0 & v == 0)
34 {
35 fx = 90;
36 }
37 else if (u == 0 & v == 0)
38 {
39 fx = 999.9;
40 }
41
42 //风速是uv分量的平方和
43
44 double fs= Math.Sqrt(Math.Pow(u, 2) + Math.Pow(v, 2)); //通过风速风向 转换为 UV
double fanU = U(FS, FX);
double fanV = V(FS, FX);
private static double U(double dSp, double dWrd)
{
if (dSp < 0)
return 0;
double d0 = 0;
d0 = dSp * Math.Cos((270 - dWrd) * Math.PI / 180);
return d0;
}
private static double V(double dSp, double dWrd)
{
if (dSp < 0)
return 0;
double d0 = 0;
d0 = dSp * Math.Sin((270 - dWrd) * Math.PI / 180);
return d0;
}
最新文章
- 重新认识了下Entity Framework
- Network - FTP与SFTP
- Android 可拖动列表项的ListView
- iOS开发——实用篇Swift篇&;QQ登入界面实现
- F5 负载均衡
- C#泛型编程
- 十四、使用framebuffer填充纯色
- 我喜欢 Google Flutter
- System.BadImageFormatException”C#报错
- [午间休息] - 午间codewars活跃脑袋
- AngularJs中url参数的获取
- HGOI20180831 NOIP2018模拟
- 算法笔记_202:第三届蓝桥杯软件类决赛真题(Java高职)
- 如何处理Entity Framework中的DbUpdateConcurrencyException异常
- wordpress---wp_query的使用方法
- python - 面向对象编程(初级篇)
- python FTP服务器实现(Python3)
- CCF CSP 201703-5 引水入城(50分)
- 【51nod】1709 复杂度分析
- 最详细的vue-cli安装教程 &;^没有之一 ^&; 大神亲测。。╮( ̄▽  ̄)╭