text: For an alternative proof, consider matrix properties. The sum of the diagonal elements of a matrix is called the trace of the matrix. In 2D and 3D every rotation is a planar rotation, and the trace is a function of the angle alone. For a 2D rotation, the trace is 2 cos θ; for a 3D rotation, 1 + 2 cos θ.
  Examples
  *Consider a 60° (6-fold) rotation matrix with respect to an orthonormal basis in 2D.
  :The trace is precisely 1, an integer.
  *Consider a 45° (8-fold) rotation matrix.
  :The trace is 2/, not an integer.
  Selecting a basis formed from vectors that spans the lattice, neither orthogonality nor unit length is guaranteed, only linear independence. However the trace of the rotation matrix is the same with respect to any basis. The trace is a similarity invariant under linear transformations. In the lattice basis, the rotation operation must map every lattice point into an integer number of lattice vectors, so the entries of the rotation matrix in the lattice basis – and hence the trace – are necessarily integers. Similar as in other proofs, this implies that the only allowed rotational symmetries correspond to 1,2,3,4 or 6-fold invariance.  For example, wallpapers and crystals cannot be rotated by 45° and remain invariant, the only possible angles are: 360°, 180°, 120°, 90° or 60°.
  Example
  *Consider a 60° (360°/6) rotation matrix with respect to the oblique lattice basis for a tiling by equilateral triangles.
  :The trace is still 1. The determinant (always +1 for a rotation) is also preserved.
  The general crystallographic restriction on rotations does not guarantee that a rotation will be compatible with a specific lattice. For example, a 60° rotation will not work with a square lattice; nor will a 90° rotation work with a rectangular lattice.