Überlege dir das Ganze doch mal in 2D: wenn du einen Punkt in der XY-Ebene um den Ursprung rotieren willst, wie berechnen sich aus den Koordinaten eines Punktes x|y seine neuen - rotierten - Koordinaten x'|y' ? (Stichwort: trigonometrische Funktionen)
Dann schaue dir an, wie man eine Matrix mit einem Vektor multipliziert (zunächst noch in 2D).
Dann solltest du in der Lage sein, die Rotationsrechnung als 2D-Matrix-Vektor-Multiplikation darzustellen.
Um das Ganze in 3D zu übertragen, wieder ganz einfach anfangen: rotiere um eine der Koordinatenachsen. Das entspricht nämlich der 2D-Rotation in der Ebene, die durch die beiden anderen Achsen aufgespannt wird (wenn du z.B. um die X-Achse rotieren willst, entspricht das einer Rotation in der YZ-Ebene). Die Koordinate auf der Achse, um die du rotierst, bleibt unverändert.
Auch diese Rechnung kann wieder als (jetzt 3D) Matrix-Vektor-Multiplikation dargestellt werden.
Und eine Rotation in 3D um eine beliebig im Raum positionierte Achse läßt sich in Translationen (Verschiebungen) und Rotationen um Koordinatenachsen zerlegen.