I don't know if I can agree with you. Actually I don't understand how
degrees became so widely accepted, radians make a lot more sense to me.
First: I don't find radians difficult to deal with at all.
Second: I use a lot of math functions that need radians in my programs.
Third: If you use radians exclusively they're not a problem at all.
Changing things would only change the direction of conversion, not eliminate
the need to convert.
I suppose if someone wanted to re-write all of J3D they could overload all
the methods dealing with angles and add an int to the arguments, this would
keep existing programs compatible:
someMethod(double radians){....};
someMethod(double radians, int Class.USE_DEGREES){....};
Food for thought anyway : )
Don
-----Original Message-----
From: Hugh Fisher [mailto:[EMAIL PROTECTED]]
Sent: Sunday, March 26, 2000 7:40 PM
To: [EMAIL PROTECTED]
Subject: [JAVA3D] Lose the radians
I sent this off to the java3d-comments email. I'd like
to know if other people are as willing as I am to rewrite
existing code if it means never having to convert between
degrees and radians again.
BUG: Java3D rotations are expressed in the internal
format of radians rather than degrees.
WORKAROUND: Programmers must use math routines to convert
angles into the internal format before passing as arguments,
and again on return values to generate meaningful output for
the user interface or testing/debugging.
FIX: All rototation-related classes such as transformations
and quaternions should accept arguments, or return values,
in degrees and keep the implementation format hidden.
Radians may have nice mathematical properties, but these are
only of interest to ... mathematicians. New programmers,
experienced programmers, 3D artists, architects, geographers,
etc all think in degrees. Exposing radians makes coding,
testing, and debugging tedious. It makes it harder for
lecturers to translate most textbook examples into computer
code. (Quick: can gimbal lock occur after a rotation of 1.6707
about an axis?)
It will be easier to convert code from OpenGL, and easier for
OGL programmers to switch to Java3D.
A counter argument is that radians are already used in VRML.
That was a mistake and should not be imitated. I have never
read any VRML tutorial/introduction that did not apologise
for the use of radians, with some comment along the lines of
"You'll get used to it." We don't. No student in my 3D graphics
course has ever expressed satisfaction that VRML uses radians
instead of degrees, and all have been delighted to move on to
coding in OpenGL where it no longer applies.
Is this code incompatible with existing code? Yes, and I for
one would gladly change my existing code if it meant that
*every* future program would be simplified.
Hugh Fisher
ACSYS/CSIRO VE Lab
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".