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.