| 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 |