> For the complete documentation index, see [llms.txt](https://wiki.hanzheteng.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.hanzheteng.com/math/topology/representation-of-rotations.md).

# Representation of Rotations

The table below summarizes the six methods as the representation of rotations.

<table data-full-width="false"><thead><tr><th width="166">Representation</th><th width="122">Expression</th><th width="94"># of Params</th><th width="116">Singularity</th><th width="106">Topology</th><th>Fundamental Group</th></tr></thead><tbody><tr><td>Rotation matrices</td><td>R_3x3</td><td>9</td><td>No</td><td>RP^3</td><td>Z/2Z</td></tr><tr><td>Exponential coordinates</td><td>ω ̂θ</td><td>3</td><td>Yes</td><td>S^2×S^1</td><td>Z</td></tr><tr><td>Axis-angle</td><td>ω ̂, θ</td><td>4</td><td>Yes</td><td>S^2×S^1</td><td>Z</td></tr><tr><td>Euler angles</td><td>α, β, γ</td><td>3</td><td>Yes</td><td>T^3</td><td>Z x Z x Z</td></tr><tr><td>Roll-pitch-yaw angles</td><td>α, β, γ</td><td>3</td><td>Yes</td><td>T^3</td><td>Z x Z x Z</td></tr><tr><td>Unit quaternions</td><td>q=[q_0, q_1, q_2, q_3]</td><td>4</td><td>No</td><td>S^3</td><td>trivial</td></tr></tbody></table>

#### Fundamental Group

* Imagine you have a loop (a path that starts and ends at the same point) in a space. The fundamental group of a space at a point is the set of all such "loops" at that point, where two loops are considered the same if you can deform one into the other without breaking or lifting them off the space. The operation of this group is "concatenation" of loops, which means doing one loop after another.
* In topology, a basic theorem is that if two spaces are homeomorphic (i.e., they can be continuously deformed into each other), then their fundamental groups are isomorphic (i.e., there is a bijective map between them that preserves the group structure).

#### Examples

* The fundamental group of S^1 is Z, because each integer counts the number of times a loop winds around the circle.
* The fundamental group of S^n (n>2) is trivial, because any loop on the sphere can be shrunk to a point without leaving the sphere. In group theory, a "trivial" group is one that contains only a single element. This is the smallest possible group.
* The fundamental group of a torus T^2 is Z x Z, because there are two independent ways to loop around a torus. These loops are independent in the sense that you can't deform loop A into loop B without leaving the surface of the torus. The set of all possible "combinations" of loops A and B forms a group that is isomorphic to Z x Z.
* The fundamental group of SO(3) is isomorphic to Z/2Z, the group of integers modulo 2. This is a deep fact about SO(3) that requires some sophisticated machinery to prove, but intuitively, it comes from the fact that a 180-degree rotation in 3-dimensional space cannot be continuously deformed to the identity rotation, but a 360-degree rotation can.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.hanzheteng.com/math/topology/representation-of-rotations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
