【发布时间】:2015-03-31 07:42:14
【问题描述】:
我正在尝试编写模拟程序。本来我会随机创建这样的点......
for (int c = 0; c < number; c++){
for(int d = 0; d < 3; d++){
coordinate[c][d] = randomrange(low, high);
}
}
其中 randomrange() 是任意范围随机化器,number 是创建点的数量,d 表示 x,y,z 坐标。它有效,但是我想更进一步。我将如何定义一个已知的形状?假设我想要一个圆的圆周上的 80 个点,或者形成立方体边缘的 500 个点。我可以在纸上很好地解释,但是在将过程描述为编码时遇到了问题。这与问题无关,但我最终将点带到 txt 文件,然后使用 matlab、scatter3 绘制点。创建“形状”点是我的问题。
【问题讨论】:
-
你想要它真的随机吗?或者你可以在立方体的每个面上随机分配 83 个点吗?另外,请查看标准 C++
<random>。我认为您不熟悉,因为您的randomrange看起来像std::uniform_real_distribution -
那里的函数只是一个虚构的例子。我正在使用带有随机函数的 C 标头。它是 r1273 或类似的东西。我不一定需要它们随机。事实上,我更喜欢统一分配积分。从那里,如果我需要对形状进行一些随机性,我只需为每个 x、y、z 分量添加一个较小的随机值。
标签: c++ arrays simulation point cartesian