delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/25/19:04:06

Message-ID: <3338626C.5769@abc.se>
Date: Wed, 26 Mar 1997 00:40:28 +0100
From: Kjell Franzen <kjell DOT franzen AT abc DOT se>
Reply-To: Kjell DOT Franzen AT abc DOT se
MIME-Version: 1.0
To: DBerry1 AT dca DOT gov DOT au
CC: djgpp AT delorie DOT com
Subject: Re: Newbie troubles with Sin and Cos
References: <0000oqkoqioy DOT 0000nzhphlnh AT dca DOT gov DOT au>

DBerry1 AT dca DOT gov DOT au wrote:
> 
> G'day
> 
> I've just started playing around with DJGPP and have come across the
> following problem.
> 
> I'm trying to write a routine that spins a pixel around in a circle.  That
> works ok so far, except that the X and Y points are never next to each
> other - I think I have narrowed it down to the results I am getting from
> using COS and SIN.
> 
> for instance here's the output from a simple prog I did to test my idea
> 
> Sin of 0 is 0.000000
> Sin of 1 is 0.841471
> Sin of 2 is 0.909297
> Sin of 3 is 0.141120
> Sin of 4 is -0.756802
> 
> But using a calculator I get
> 
> Sin of 0 is 0
> Sin of 1 is 0.017452
> Sin of 2 is 0.034899
> Sin of 3 is 0.052335
> Sin of 4 is 0.069756
> 
> Here's the simple prog...
> 
> #include <math.h>
> #include <stdlib.h>
> #include <stdio.h>
> 
> float result = 0.0;
> int theta = 0;
> 
> main ()
> {
> while (theta < 360)
> {
> result = sin(theta);
> printf ("Sin of %i is %f\n",theta,result);
> theta++;
> }
> return 0;
> }
> 
> Am I using the wrong variable types to hold the results ?  Do I need to do
> something special in DJGPP to get the magic numbers ?
> 
> Thanks
> dberry AT dca DOT gov DOT au
It works fine. The result You get is not what You expected because DJGPP
(and probably all other compilers) takes radians instead of degrees. A
whole 360 degrees is, in radians, 2 pi. So what you need to do is
multiply your degrees with pi/180. That should get you the result you
expected...

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019