| | |
| | | } |
| | | |
| | | size++; |
| | | double sin = windSpeed * Math.sin(windDir / 180d) * Math.PI; |
| | | double cos = windSpeed * Math.cos(windDir / 180d) * Math.PI; |
| | | double sin = windSpeed * Math.sin(windDir / 180d * Math.PI); |
| | | double cos = windSpeed * Math.cos(windDir / 180d * Math.PI); |
| | | sumSin += sin; |
| | | sumCos += cos; |
| | | } |
| | |
| | | double avgCos = sumCos / size; |
| | | if (avgSin > 0 && avgCos > 0) { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI; |
| | | } else if ((avgSin > 0 && avgCos < 0) || (avgSin < 0 && avgCos < 0)) { |
| | | } else if (avgCos < 0) { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI + 180; |
| | | } else { |
| | | avgDir = Math.atan(avgSin / avgCos) * 180 / Math.PI + 360; |