cubecore

A library of core functions for working with 3x3x3 Rubik's cubes
git clone https://git.tronto.net/cubecore
Download | Log | Files | Refs | README | LICENSE

commit 4d6b8478866bcdc45786e7e4e53ab40597a7d404
parent 98dfdfc2aaa92bacdc94fedc433931cb3ea66a0a
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Mon,  6 May 2024 12:26:34 +0200

Added documentation on transformations, updated .gitignore

Diffstat:
M.gitignore | 1+
Autils/TRANSFORMATIONS.txt | 23+++++++++++++++++++++++
2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,3 +1,4 @@ cube.o example/a.out example/example.o +experiments diff --git a/utils/TRANSFORMATIONS.txt b/utils/TRANSFORMATIONS.txt @@ -0,0 +1,23 @@ +Transformations can be either simple rotations or a rotation composed +with a mirroring. + +Simple rotations are denoted by two letters corresponding to the faces +to be moved to the U and F positions, respectively. For example FD is +the rotation that brings the F face on top and the D face on front. + +A composed rotation + mirror is obtained by applying the corresponding +rotation to the solved cube mirrored along the M plane. + +For example, to apply the transformation RBm (mirrored RB) to a cube C: + 1a. Apply a mirror along the M plane to the solved cube + 1b. Rotate the mirrored cube with z' y2 + 3. Apply the cube C to the transformed solved cube + 4. Apply the transformations of step 1a and 1b in reverse + +The orientation of pieces after a rotation ignores the new position +of centers. A rotated cube can technically be inconsistent, because +the parity of the edge permutation has to be adjusted considering the +parity of the centers, which we ignore. + +The utility script mirror.sh transforms a solved, rotated cube to its +mirrored and rotated version.