help-3dldf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[help-3dldf] Re: Rotations


From: Hans Aberg
Subject: [help-3dldf] Re: Rotations
Date: Mon, 16 Aug 2004 19:19:19 +0200

At 21:17 +0200 2004/08/15, Laurence Finston wrote:
>> I think that some graphics experts must know how to fix those alignment
>> problems, and why double's does not seem to be enough for you.
>
>It's enough for practical use, but it bothers me.  I haven't found anything
>about this in the graphics books I've looked at.  I haven't yet gotten to the
>point of researching recent articles rather than monographs.  The research in
>3D graphics has gotten quite specialized whereas I'm still implementing basic
>functionality in 3DLDF.

You have some conflicting requirements, exactitude and speed. My guess is
that speed will be the most important in graphics, and thus, you will be
stuck with using 64-bit floats. Then the best way is probably to speak to
somebody which has worked with it, perhaps in one of those graphics
newsgroups. I can think of two solutions: one is admitting to create
objects in which the points agree. And another is to simply use a small
epsilon which defines what should be considered as graphically equal points
(a suitable fraction of what can be graphically rendered). When I program
with floats, I usually use such an epsilon.

An idea to find such an epsilon might be as follows: Your graphics will be
printed by at most 2400 points/inch, and of largest size 10 inches, so this
gives perhaps about 10^4 points in your graphics, say 10^5 to be sure. How
many components will your graphics have? Probably not more than 10^5. Then
your epsilon will be around 10^(-10) in relative error. Then 64-bit floats
have an accuracy of 15-16 decimals, giving room for about 10^5-10^6
floating point operations. So this should be enough even in heavy computing.

Or else, you will have to describe your problems more carefully.

  Hans Aberg






reply via email to

[Prev in Thread] Current Thread [Next in Thread]