【问题标题】:Projecting points from 4d-space into 3d-space in Mathematica在 Mathematica 中将点从 4d 空间投影到 3d 空间
【发布时间】:2011-03-31 05:40:16
【问题描述】:

假设我们有一组点,每个点的所有坐标都是非负的,并且坐标之和等于 1。这将点限制在 3 维单纯形中,因此有意义尝试将其映射回 3 维空间以进行可视化。

我正在寻找的地图将采用极值点 (1,0,0,0),(0,1,0,0),(0,0,1,0) 和 (0,0,0 ,1) 到“定位良好”的正四面体的顶点。特别是,四面体的中心位于原点,一个顶点位于 z 轴上,一个面平行于 x,y 平面,一个边平行于 x 轴。

这里的代码对 3 维中的点执行类似的操作,但如何将其扩展到 4 似乎并不明显。基本上我正在寻找函数的 4 维等效项 tosimplex(它将 4 维变为 3)它是单纯形的逆

A = Sqrt[2/3] {Cos[#], Sin[#], Sqrt[1/2]} & /@ Table[Pi/2 + 2 Pi/3 + 2 k Pi/3, {k, 0, 2}] // 转置; B = 逆[A]; tosimplex[{x_, y_, z_}] := 大多数[A.{x, y, z}]; fromsimplex[{u_, v_}] := B.{u, v, Sqrt[1/3]}; (* 检查 *) 极端 = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}; 图形[Polygon[tosimplex /@extreme]] fromsimplex[tosimplex[#]] == # & /@extreme

答案:

deinst 的答案在矩阵方面的直接重新表述给出了以下内容。 (1/sqrt[4] 是第四个坐标,因为它是到单纯形中心的距离)

A = 转置[{{-(1/2), -(1/(2 Sqrt[3])), -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {1/2, -(1/(2 Sqrt[3])), -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {0, -(1/(2 Sqrt[3])) + Sqrt[3]/2, -(1/(2 Sqrt[6])), 1/Sqrt[4]}, {0, 0, Sqrt[2/3] - 1/(2 Sqrt[6]), 1/Sqrt[4]}}]; B = 逆[A]; tosimplex[{x_, y_, z_, w_}] := 大多数[A.{x, y, z, w}]; fromsimplex[{t_, u_, v_}] := B.{t, u, v, 1/Sqrt[4]}; (* 检查 *) 极端 = Table[Array[Boole[# == i] &, 4], {i, 1, 4}]; Graphics3D[Sphere[tosimplex[#], .1] & /@extreme] fromsimplex[tosimplex[#]] == # & /@extreme

【问题讨论】:

    标签: geometry wolfram-mathematica polyhedra


    【解决方案1】:

    一种可能性:

    1. 从四面体的中心向每个顶点生成四个(非正交)3 向量 \vec{v}_i
    2. 对于每四个位置x = (x_1 .. x_4)形成向量和\Sum_i x_i*\vec{v}_i

    当然,这种映射通常不是唯一的,但您的条件是 x_i 的总和为 1 会限制事物。

    【讨论】:

    • 想冒险猜测如何获得从四面体中心到每个顶点的 4 个向量的坐标? ;)
    【解决方案2】:

    你想要的

       (1,0,0,0) -> (0,0,0)
       (0,1,0,0) -> (1,0,0)
       (0,0,1,0) -> (1/2,sqrt(3)/2,0)
       (0,0,0,1) -> (1/2,sqrt(3)/6,sqrt(6)/3))
    

    而且它是一个线性变换,所以你变换

       (x,y,z,w) - > (y + 1/2 * (z + w), sqrt(3) * (z / 2 + w / 6), sqrt(6) * w / 3)
    

    编辑您希望中心位于原点 - 只需减去四个点的平均值。对不起

    (1/2, sqrt(3)/6, sqrt(6) / 12)
    

    【讨论】:

    • 练习。有半页潦草的三角形等。唯一棘手的部分是四面体的高度,一旦你得到底的中心,它就是代数。
    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 2015-06-24
    • 2018-11-03
    • 2019-03-07
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    相关资源
    最近更新 更多