如何在 n 维给定固定振幅的情况下将角度向量转换为欧几里德坐标

How to convert an angle vector to Euclidean coordinates given a fixed amplitude, in n dimension

因此,将极坐标(振幅、角度)转换为二维欧几里德坐标非常简单。

但是在 n(比如说 n = 5)维中,我有一个固定的振幅和一个随机的角度向量。如何将其转换为坐标的欧氏向量?

amp = 0.5
n = 5
ang = np.random.rand(n) * 2* pi

非常感谢

在 2D 中,转换为:

x = amp * cos(angle)
y = amp * sin(angle)

在 3D 中,一个选项是:

x = amp * cos(angle1) * cos(angle2)
y = amp * sin(angle1) * cos(angle2)
z = amp *               sin(angle2)

您应该看到一个规律。已经存在的维度获得 cos(newAngle) 的因子。新维度得到 sin(newAngle)。所以,在 4D 中,这将是:

x = amp * cos(angle1) * cos(angle2) * cos(angle3)
y = amp * sin(angle1) * cos(angle2) * cos(angle3)
z = amp *               sin(angle2) * cos(angle3)
w = amp *                             sin(angle3)

一般来说,第 i 个维度是(基于 1):

dim_i = sin(angle_(i-1)) * Product {j from i to n} cos(angle_j)

(仅当 angle_(i-1) 存在时,否则将术语设置为 1)。