rotation: The homeomorphism between balanced configurations and...

rotationR Documentation

The homeomorphism between balanced configurations and rotation matrices

Description

In the Real Projective Spaces and 3x3 Rotation Matrices vignette, it is shown that there is a homeomorphism between P_4^\pi, the space of balanced configurations of 4 or 2 points on the circle, and \text{SO(3)}, the space of 3x3 rotation matrices. These functions implement the homeomorphim and its inverse.

Usage

rotationfromarcs( arcmat, tol=5.e-9 )
arcsfromrotation( rotation, tol=1.e-7 )
rotationaroundaxis( axis, theta )

Arguments

arcmat

a 2x2 or 1x2 matrix with an arc definition in each row; so the number of arcs is 2 or 1. The 1st number in the row is the center of the arc, and the 2nd number is the length of the arc; both in radians.
The total length must be \pi, and this is tested. If there is only one arc, it must be a semicircle. Only the endpoints of arcmat matter; the complement of the arcs maps to the same rotation.

tol

In rotationfromarcs() tol is the tolerance for the test that the total arc length is \pi.
In arcsfromrotation() tol is the tolerance for testing that the mapped point in \partial Z_4 is close to the substratum \partial Z_2. This is to avoid generating 2 arcs, one of which is very tiny.

rotation

a 3x3 rotation matrix. The numeric 3x3 matrix property is verified, but, in the interest of speed, orthogonality and orientation-preservation is not verified.

axis

a non-zero 3-vector defining an oriented axis in \mathbb{R}^3. axis is not required to be a unit vector.

theta

an angle in radians. The computed rotation matrix rotates by this angle.

Details

As currently implemented, a 2-point configuration in P_2^\pi, whose points must be antipodal, maps to a rotation around the x-axis. The configuration of the 2 points (0,\pm 1) maps to the 3x3 identity matrix. See the Real Projective Spaces and 3x3 Rotation Matrices vignette, for an animation of this.

Value

rotationfromarcs() maps from P_4^\pi to \text{SO(3)}; it returns a 3x3 rotation matrix.

arcsfromrotation() maps from \text{SO(3)} to P_4^\pi; the returned set of arcs (either 1 or 2 of them) is only defined up to complementation. Since all we want is the endpoints, the ambiguity does not matter. The total length of the arcs is \pi.

rotationaroundaxis() returns a 3x3 rotation matrix which rotates theta radians around the given axis.

In case of error, all these functions return NULL.

See Also

boundaryfromarcs(), spherefromboundary(), boundaryfromsphere(), arcsfromboundary(), complementaryarcs()


polarzonoid documentation built on June 13, 2025, 9:08 a.m.