delorie.com/archives/browse.cgi | search |
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)
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |