• I
Cristiano
This is a question about the well known trigonometric problem of the wind triangle, but my problem is just the calculation of the head wind component.
I don't know how to write a general procedure to find the angle between the wind and the speed of the aircraft (the so called ground speed).

Suppose that the wind direction WD= 120° and the ground track GT= 40°; the wind direction is always *from* x degrees, then I need to consider WD + 180= 300; the angle is GT - 300 + 360= 100°.
Now suppose that WD= 40° and GT= 120°; the above formula doesn't work; in this case I just need to do (WD + 180) - GT.
Please, could someone help me in finding a general procedure to do that?
Thank you

nasu
You don't need to do all this. Just draw a diagram and everything becomes obvious.
What angle are you trying to find out, anyway?
And what is ground track? The speed of the plane relative to the ground?

Cristiano
You don't need to do all this. Just draw a diagram and everything becomes obvious.

I already do that by hand, but the problem is that I need to find a general procedure or an algorithm (few lines of C code).
I need something like this:
1) calculate angle= (WD + 180) - GT
2) if angle > 360 then angle= angle - 180
3) if angle < 0 then angle ...
4) ...

but it's just an example.

What angle are you trying to find out, anyway?

The angle between the wind and the aircraft.

And what is ground track? The speed of the plane relative to the ground?

Yes.

nasu
Why don't you use components to add or subtract the vectors? Then you don't need to have different cases.
If you write the x component of vector a (for example) as ax=a cos(theta) where theta is the angle with the horizontal, ax will be negative when the angle is between 90 and 270 degrees. You add the x components and the y components and the signs will tell you in what quadrant is the angle of the resultant. And the inverse tangent will give you the value of the angle.

Cristiano
Probably I didn't get your point; let me try an example.
Suppose that we have the vector g (ground speed) = 450 and the vector w (wind) = 50.
The angle gt for g is 20° and the angle wt for w is 150°. The correct result is 150 - 20 = 130.
I do:
x= g * cos(gt) + w * cos(wt)
y= g * sin(gt) + w * sin(wt)
atan(y / x)= 25.2°.