delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/10/18/17:31:18

From: Jonathan Foster <jgf1 AT ukc DOT ac DOT uk>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Newbie seeks help with rotating triangle program
Date: Wed, 15 Oct 1997 16:38:12 +0100
Organization: University of Kent at Canterbury, England
Lines: 18
Message-ID: <3444E364.6CDF@ukc.ac.uk>
References: <19971015041101 DOT AAA17302 AT ladder01 DOT news DOT aol DOT com>
NNTP-Posting-Host: dhcp2dc9.ukc.ac.uk
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Joshua Hab wrote:
> x=(RADIUS_LENGTH*(cos(theta/360*6.28)))+CENTER_X
                        ^^^^^^^^^

This is a problem with number types.  The fragment "theta/360" is
taking an "int theta" and dividing it by the integer 360.  The result
will be rounded to an _integer_ according to the ANSI C spec, and
because the answer is less than 1 this means the angle will always be
rounded to zero.

Try this:  "theta/360.0*6.28"  The "360.0" is now a _float_, so the
value of "theta" is made into a float.  This allows the division to 
give a fractional answer, and it should work.

-- 
   Jon Foster.

(1st Year Maths/Computer Science Student)

- Raw text -


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