vmm.surface.implicit
Class Maps

java.lang.Object
  extended by vmm.surface.implicit.Maps

public class Maps
extends java.lang.Object

This class defines several important and related linear maps of R^3 to itself as static methods; namely projection P on a one-dimemsional subspace, L, reflection R in L, and the transvection T defined by a pair of unit vectors. In what follows axis denotes a unit vector of R^3 and L the subspace it spans. The projection P onto the line L spanned by axis is the linear map (v ---> axis). where < . > denotes the dot product. We note that it has L as its +1 eigenspace and the orthogonal complement L' of L is its 0 eigenspace. Since reflection in L has L as its +1 eigenspace and L' as its -1 eigenspace, it is clear that R = 2P -I where I is the identity map. The transvection T defined by unit vectors e1 and e2 is defined whenever e2 is not equal to plus or minus e1, so that e1 and e2 are a basis for a two-dimensional subspace V. Then T is defined to be the unique rotation that is the identity on V', the orthogonal complement of V, and on V is the unique rotation of V carrying e1 into e2. It is easy to see that T is just the product of two reflections. Namely, if m denotes the midpoint of e1 and e2 on the unit sphere S^2 (obtained by normalizing e1 + e2) then T is reflection in m followed by reflection in e2, or equally well it is the reflection in e1 followed by reflection in m. For convenience, each of these maps is provided in two forms, as a Vector3D valued function and as void function returning its image as one of the arguments.


Constructor Summary
Maps()
           
 
Method Summary
static Vector3D ProjectionOnAxis(Vector3D axis, Vector3D source)
          returns the projection of a Vector3D, source, onto line spanned by the unit vector, axis.
static void ProjectOnAxis(Vector3D axis, Vector3D source, Vector3D destination)
          destination is the projection of a Vector3D, source, onto line spanned by the unit vector, axis.
static void ReflectInAxis(Vector3D axis, Vector3D source, Vector3D destination)
          destination is the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.
static Vector3D ReflectionInAxis(Vector3D axis, Vector3D source)
          returns the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.
static void Transvect(Vector3D e1, Vector3D e2, Vector3D source, Vector3D destination)
          e1 and e2 should be linearly independent unit vectors.
static Vector3D Transvection(Vector3D e1, Vector3D e2, Vector3D source)
          e1 and e2 should be linearly independent unit vectors.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Maps

public Maps()
Method Detail

ProjectOnAxis

public static void ProjectOnAxis(Vector3D axis,
                                 Vector3D source,
                                 Vector3D destination)
destination is the projection of a Vector3D, source, onto line spanned by the unit vector, axis.


ProjectionOnAxis

public static Vector3D ProjectionOnAxis(Vector3D axis,
                                        Vector3D source)
returns the projection of a Vector3D, source, onto line spanned by the unit vector, axis.


ReflectInAxis

public static void ReflectInAxis(Vector3D axis,
                                 Vector3D source,
                                 Vector3D destination)
destination is the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.


ReflectionInAxis

public static Vector3D ReflectionInAxis(Vector3D axis,
                                        Vector3D source)
returns the reflection of a Vector3D, source, in the line spanned by the unit vector, axis.


Transvect

public static void Transvect(Vector3D e1,
                             Vector3D e2,
                             Vector3D source,
                             Vector3D destination)
e1 and e2 should be linearly independent unit vectors. In the plane V spanned by e1 and e2, Transvect is the rotation carrying e1 to e2, and it is the identity orthogonal to V.


Transvection

public static Vector3D Transvection(Vector3D e1,
                                    Vector3D e2,
                                    Vector3D source)
e1 and e2 should be linearly independent unit vectors. If V is the plane spanned by e1 and e2, Transvection returns the rotation applied to source that carries e1 to e2, and is the identity orthogonal to V.