Re: Dual-theta math



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

.



Relevant Pages

  • Re: angle from rotation matrix
    ... Second method, returned angle in ... with respect to accuracy of the rotation axis when the rotation angle theta is ... where theta has been determined from one of the complex eigenvalues. ... (except that the quaternion code is opposite sense in rotation angle). ...
    (comp.soft-sys.matlab)
  • Re: Convert axis and angle of rotation to rotations about X & Y axis
    ... >not need to go through all of this to come up with theta. ... in the sense that we get the right sign for r when we use that angle. ... acos would have to be sensitive to an input change in the 8th decimal ... We can get accurate recovery of the angle and its quadrant by using ...
    (comp.graphics.algorithms)
  • Re: Obtain third vertex of a triangle given two vertices and angle--
    ... Given that theta is the angle between the two vectors BA and CA. ... I have an extended experience as a teacher in exact sciences. ... For checking what I have presented here you definitely need either your own knowledge and insight, or a textbook on plane analytic geometry. ...
    (sci.math)
  • Re: Nested while loops within if statements
    ... > My code takes an initial angle ranging between 0 and 2pi radians. ... If the> angle is between 0 and 0.5pi, I perform while loop A; if the angle is> between 0.5pi and pi, I perform while loop B, and so on. ... or that you're using isolated IF statements and changing theta in an earlier IF that makes it satisfy the condition for a later IF that it otherwise would not. ... theta = theta/2; ...
    (comp.soft-sys.matlab)
  • Re: WVU and LSU
    ... when 5L1CK brings out the "Thursday Night Lights" angle. ... Are you being stupid on purpose? ...
    (rec.sport.football.college)