vmm.surface.implicit
Class Maps
java.lang.Object
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 |
Maps
public Maps()
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.