Re: Dual-theta math
- From: Randy Yates <spamtrap@xxxxxxxxxx>
- Date: Sat, 24 Mar 2007 19:58:06 -0400
Hi Rick,
As Ed mentioned, this looks a lot like spherical coordinates. However,
I could not quite understand your definition of the Y/Z angle. In
spherical coordinates, the second angle is the angle between the
vector in the XY plane (i.e., the projection of the point onto the
XY plane) and the point in 3D. See, e.g., [marsden].
These types of transformations are commonly performed using a
rotation matrix. There is some material in [postscriptref] about
this.
--Randy
@book{marsden
title = "Vector Calculus",
author = "Jerrold E. Marsden and Anthony J. Tromba",
publisher = "W.H. Freeman and Company",
edition = "third",
year = "1988"}
@book{postscriptref,
title = "Postscript Language Reference Manual",
author = "Adobe Systems Incorporated",
publisher = "Addison-Wesley Publishing Company",
edition = "second",
year = "1990"}
"Rick Hodgin" <spamtrap@xxxxxxxxxx> writes:
I while back I created a set of ASM-based libraries which would
operate on dual-theta math in 3D space. (There may be another name
for it...that's the purpose of this post). The concept was this: a
theta which operated normally in X/Y space, and then another which
operated in Y/Z space, rotating the derived point from X/Y space into
3D space.
The implementation required three values: XY_theta, YZ_theta, and a
radius, thereby defining a point. It was setup to operate in two
modes. The first was where the normal XY theta computed an XY
position with the YZ theta rotating that value around the un-rotated Y
axis in 3D space. The other was to rotate along the rotated Y axis in
3D space. The advantage of the second was that some really amazing
rotational effects were achieved by simple theta increases and
rotational moves. It also made the creation of virtual 3D objects
very simple by eminating them from a central point where they could be
rotated completely by altering only 2 values.
The purpose of these algorithms was to produce a graphical 3D engine
base for whatever purpose (my purposes were not gaming, but that would
most likely be their final use for many others). It works, but is not
yet optimized.
I'm wondering if anyone has experience with this sort of math? Knows
what it's called? And if there are any optimized ASM-based algorithms
around which do this (possibly in SIMD)?
The implementation I created used radians and the FPU (no SIMD yet).
However, I was going to create a version which would use N-bit
bittians, so as to only garner as much angular resolution as was
required for the implementation of whatever it was that was being
done. I was thinking a 4096 field array woud suffice. But, that's
research left to be done.
Any ideas?
- Rick C. Hodgin
--
% Randy Yates % "The dreamer, the unwoken fool -
%% Fuquay-Varina, NC % in dreams, no pain will kiss the brow..."
%%% 919-577-9882 %
%%%% <yates@xxxxxxxx> % 'Eldorado Overture', *Eldorado*, ELO
http://home.earthlink.net/~yatescr
.
- References:
- Dual-theta math
- From: Rick Hodgin
- Dual-theta math
- Prev by Date: Re: Dual-theta math
- Next by Date: Re: Dual-theta math
- Previous by thread: Re: Dual-theta math
- Next by thread: Re: Dual-theta math
- Index(es):
Relevant Pages
|