来自3D体积的随机2D切片

时间:2012-05-24 21:01:47

标签: math

我想从计算机程序中的3D体积中获取随机2D切片以产生噪声。我决定使用旋转矩阵,我理解它必须是旋转组SO(3)的成员。如何创建该组的统一随机成员?

2 个答案:

答案 0 :(得分:3)

选择三个随机值u 1 ,u 2 ,u 3 在0和1之间。

统一随机四元数is given by

  • w = sqrt(1 - u 1 )sin(2pi * u 2

  • x = sqrt(1 - u 1 )cos(2pi * u 2

  • y = sqrt(u 1 )sin(2pi * u 3

  • z = sqrt(u 1 )cos(2pi * u 3

然后,您可以使用this formula生成适当的旋转矩阵:

    |       2     2                                |
    | 1 - 2y  - 2z    2xy - 2zw      2xz + 2yw     |
    |                                              |
    |                       2     2                |
M = | 2xy + 2zw       1 - 2x  - 2z   2yz - 2xw     |
    |                                              |
    |                                      2     2 |
    | 2xz - 2yw       2yz + 2xw      1 - 2x  - 2y  |
    |                                              |

答案 1 :(得分:1)

您可以绘制随机3D矢量,由三个独立随机变量的组合形成每个轴。然后,您可以将此向量定义为随机2D切片的法线向量以及该2D切片与原点的距离。我很确定(尽管没有正式的证明)这种方法应该在可能的2D切片上给出均匀分布(之前的陈述基本上是非正式的)。

编辑:第二个想法,您应该绘制一个自变量来表示2D切片与原点的距离。否则,您将拥有2D切片的分布,这些切片更可能距离原点一定距离。