QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#20003. 旋轉變換

Statistics

一個簡單的動作,一遍又一遍……

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

Julia 非常喜歡簡單的動作,尤其是三維空間中的動作!最近,她找到了一個矩陣,它對應於繞一條經過原點的軸的某次旋轉。

旋轉矩陣 $A$ 按照如下方式將點 $\begin{pmatrix}x\\y\\z\end{pmatrix}$ 移動到 $\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}. $$

也可以用幾何方式描述一次旋轉:給出旋轉所繞的單位向量(即長度為 $1$ 的向量)$v=\begin{pmatrix}v_x\\v_y\\v_z\end{pmatrix}$,以及旋轉角 $\alpha$。假設你從 $v$ 的末端看向原點。如果旋轉方向為逆時針,則角 $\alpha$ 為正,否則為負。

Julia 想用幾何方式表達由矩陣給出的旋轉。遺憾的是,Julia 不知道 $v$ 和 $\alpha$ 的值,因此她請你找出它們,好讓她繼續她的簡單動作。

輸入格式

給定矩陣 $A$:共三行,每行三個實數。每個數的小數點後至多有 $20$ 位。保證存在 $v$ 和 $\alpha$,滿足 $1\le|\alpha|\le179$,並且繞向量 $v$ 旋轉角 $\alpha$ 所對應的矩陣 $A'$ 的每個元素與 $A$ 的對應元素之差的絕對值至多為 $10^{-13}$。

輸出格式

第一行輸出以度為單位的角 $\alpha$。第二行輸出單位向量 $v$ 的座標。請盡可能精確地輸出所有數。如果 $A_{ij}$ 與由你輸出的角和單位向量構造出的矩陣的對應元素之差的絕對值不超過 $10^{-6}$,你的答案將被視為正確。

範例

輸入格式 1

0 -1 0
1 0 0
0 0 1

輸出格式 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.