Floating Point Precision Loss


Posted on 16th Feb 2014 07:03 pm by admin

I'm writing a program to draw a three-dimensional cube (with a corner cut off) without using any 3D graphics APIs. The only API call I make is win32's SetPixel()

Everything is going great. I've drawn lines, faces, and even the entire cube. Then rotation came along.

Did you know?Explore Trending and Topic pages for more stories like this.
For some reason, when I rotate my cube, it begins to shrink. I became confused, then I realised something. Floating point numbers are truncated.

Here's some code that is fired everytime the user presses 'X' on the keyboard.

Code: p->setY( p->getY() * cos(5.0/180.0*PI) - p->getZ() * sin(5.0/180.0*PI)); p->setZ( p->getY() * sin(5.0/180.0*PI) + p->getZ() * cos(5.0/180.0*PI));

p is a Point object that I created. Here the Y value and the Z value of the Point are being set. The problem is everytime X is pressed, and this code is fired, a small amount of precision is lost. As a result, the cube shrinks.

I'm really completely stumped. I remember when studying assembler that floating point numbers can be truncated or rounded. I think rounding would solve my problem. Since 50% of the time the value would round up, and 50% of the time the value would round down.

Whereas with truncation values are always lost, and never gained.
No comments posted yet

Your Answer:

Login to answer
213 Like 53 Dislike
Previous forums Next forums
Other forums

Comment Mod System Effects all rows...
Sorry if its confusing but here is whats going on: I have a table in a database called comments and

Beginner PHP code help
Hi I'm new to php but if someone could please read the question below and help it would be great.

Using loop to count number of entries
I'm writing a program that must ask user to type in numbers. After each entry, the program has to re

need help modifying script
Hi guys,

I'm fairly new to php and am having a bit of trouble modifying a script.

This

What are causes of a connection-timeout with fopen()?
Hello! Here is the situation: The server I host my website on just upgraded it's PHP build from 4.4.

how to validate date using javascript
I need to validate date in textbox using javascript..
The date is must be not greater than TODAY

Batch Related Pricing
Hi, I need some clarity on the batch related pricing

For example the following are the b

Session
I am having a little trouble with a session. Not sure if it is my browser or what. I know I do not

Users and Groups with PHP Classes
Hi,

I have setup what I hope to be a good working User class. Now I want to introduce group m

Blocking video streaming
Hello everyone,

I post a message here because i didn't find any solution yet.
I just finis

Sign up to write
Sign up now if you have flare of writing..
Login   |   Register
Follow Us
Indyaspeak @ Facebook Indyaspeak @ Twitter Indyaspeak @ Pinterest RSS



Play Free Quiz and Win Cash