【问题标题】:How to generate random convex polyhedral with constrained edge length如何生成具有约束边长的随机凸多面体
【发布时间】:2017-05-10 09:28:29
【问题描述】:

我想随机生成一个凸多面体,但条件如下:

  1. 所有顶点和边都位于具有角 (0.0, 0.0, 0.0) 和 (1.0, 1.0, 1.0) 的立方体内。
  2. L 为边的长度,它应满足 Lmin 对于每一个边缘。 (例如,0.4

我已经尝试了以下 Matlab 代码:

figure();
vetices = rand(50,3);
k = convhulln(vetices);
trisurf(k, vetices(:,1), vetices(:,2), vetices(:,3));

然后我得到这样的东西:

但这不符合要求 2,即有些边太短,有些边太长。我想让边长分布更集中。

感谢您提供任何建议或代码。 (matlab、c++或python中的代码都可以)

【问题讨论】:

  • 在 Matlab、c++ 或 python 中的代码都可以。选择 1
  • @AnderBiguri 如果我必须指定一种语言,那么它将是 Matlab。而且二维的解也可以,我会尝试将其扩展到3D。

标签: matlab random geometry


【解决方案1】:

2D 中的一种方法:从具有正确边长的正多边形开始。然后迭代顶点并仔细更改它,以便您的要求仍然得到满足。由于每个顶点只有两个邻居,因此很容易确保新多边形仍然是凸的。

【讨论】:

    猜你喜欢
    • 2011-10-09
    • 2021-02-13
    • 2012-04-06
    • 2014-03-25
    • 2016-08-25
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2017-10-17
    相关资源
    最近更新 更多