QOJ.ac

QOJ

시간 제한: 2.0 s 메모리 제한: 256 MB 총점: 100

#20003. Rotationstransformation

통계

Eine einfache Bewegung, immer wieder …

t.A.T.u., «A Simple Motion»

Julia liebt einfache Bewegungen sehr, besonders im dreidimensionalen Raum! Kürzlich fand sie eine Matrix, die einer gewissen Drehung um eine Achse durch den Ursprung entspricht.

Eine Rotationsmatrix $A$ bewegt den Punkt $\begin{pmatrix}x\\y\\z\end{pmatrix}$ wie folgt nach $\begin{pmatrix}x'\\y'\\z'\end{pmatrix}$:

$$ \begin{pmatrix}x'\\y'\\z'\end{pmatrix}= \begin{pmatrix}A_{11}&A_{12}&A_{13}\\A_{21}&A_{22}&A_{23}\\A_{31}&A_{32}&A_{33}\end{pmatrix} \times\begin{pmatrix}x\\y\\z\end{pmatrix}. $$

Eine Drehung lässt sich auch geometrisch durch einen Einheitsvektor (also einen Vektor der Länge $1$) $v=\begin{pmatrix}v_x\\v_y\\v_z\end{pmatrix}$, um den die Drehung erfolgt, und einen Drehwinkel $\alpha$ beschreiben. Stelle dir vor, du blickst vom Ende von $v$ auf den Ursprung. Erfolgt die Drehung dann gegen den Uhrzeigersinn, ist der Winkel $\alpha$ positiv, andernfalls negativ.

Julia möchte die durch eine Matrix gegebene Drehung geometrisch ausdrücken. Leider kennt sie die Werte von $v$ und $\alpha$ nicht. Daher hat sie dich gebeten, sie zu finden, damit sie ihre einfache Bewegung fortsetzen kann.

Eingabe

Gegeben ist die Matrix $A$: drei Zeilen mit je drei reellen Zahlen. Jede Zahl wird mit höchstens $20$ Nachkommastellen angegeben. Es ist garantiert, dass solche $v$ und $\alpha$ existieren, dass $1\le|\alpha|\le179$ gilt und sich außerdem die Elemente der Matrix $A'$, die einer Drehung um den Vektor $v$ um den Winkel $\alpha$ entspricht, von den entsprechenden Elementen von $A$ um höchstens $10^{-13}$ unterscheiden.

Ausgabe

Gib in der ersten Zeile den Winkel $\alpha$ in Grad aus. Gib in der zweiten Zeile die Koordinaten des Einheitsvektors $v$ aus. Gib alle Zahlen so genau wie möglich aus. Deine Antwort wird als korrekt gewertet, wenn die Differenz zwischen $A_{ij}$ und dem entsprechenden Element der aus deinem Winkel und Einheitsvektor konstruierten Matrix höchstens $10^{-6}$ beträgt.

Beispiele

Eingabe 1

0 -1 0
1 0 0
0 0 1

Ausgabe 1

90
0 0 1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.