balloony
balloony

Reputation: 21

problems with a simple coordinate conversion

This code is supposed to calculate and return the real part of a complex number with magnitude a and angle b in degrees. It gives me wrong numbers.

        x = (a*(cos(b*(180/pi))));

This however, gives me the right numbers if the angle is given in radians.

x = (a*(cos(b)));

pi is defined as const double pi = 3.142

Any thoughts? I cannot see why the x should be wrong in the first but correct in the second example.

Upvotes: 0

Views: 50

Answers (3)

Ramesh Kumar
Ramesh Kumar

Reputation: 1568

You are not using formula correctly

this can be written as:

x = (a*cos((b * pi)/180));

Upvotes: 1

Shilong Dai
Shilong Dai

Reputation: 81

Since 180 degrees is 1 pi radian. The formula for degrees to radians should be

radian = (degree / 180) pi.

Thus the first formula should be

x = (a*(cos((b / 180)*pi))));

Upvotes: 2

Rory Daulton
Rory Daulton

Reputation: 22544

You have the conversion backwards: your formula changes b from radians to degrees before calculating its cosine. But you want to convert from degress to radians. The correct formula is

 x = (a*(cos(b*(pi/180)));

though you could use fewer parentheses and use more spacing:

 x = a * cos(b * pi / 180);

Upvotes: 1

Related Questions