delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/25/20:55:13

Date: Tue, 25 Mar 1997 19:43:23 -0600 (CST)
From: Andrew Deren <aderen AT eecs DOT uic DOT edu>
Reply-To: Andrew Deren <aderen AT eecs DOT uic DOT edu>
To: DBerry1 AT dca DOT gov DOT au
cc: djgpp AT delorie DOT com
Subject: Re: Newbie troubles with Sin and Cos
In-Reply-To: <0000oqkoqioy.0000nzhphlnh@dca.gov.au>
Message-ID: <Pine.SUN.3.95.970325193134.25918B-100000@ernie.eecs.uic.edu>
MIME-Version: 1.0

Your problem is that math sin and cosine function use radians not degrees.
To convert from degrees to radians use 
radians = (pi * degrees) / 180.0;
where pi 3.14 or you can use math #define PI to get it more accurate

Than your main function would be:
> main ()
> {
> while (theta < 360)
> {
> result = sin((PI * theta) / 180.0);
> printf ("Sin of %i is %f\n",theta,result);
> theta++;
> }
> return 0;
> }
The other way to do it would be to say
while (theta < 2 * PI){
..
theta += 0.0174532925; // (2*PI)/360
}
I hope that helps

On 26 Mar 1997 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
> 
> 

- Raw text -


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