【问题标题】:Get N random equidistant points from a given point从给定点获取 N 个随机等距点
【发布时间】:2015-01-10 13:55:46
【问题描述】:

我需要一个可以让我找到 n 个随机点的函数。这些点与给定点的距离必须相同。你能帮帮我吗?

void createCpoints()
{
    int xcenter=3;
    int ycenter=3;
    int radius=3;
    double x[N];
    double y[N];
    //...
}

【问题讨论】:

标签: c++ function points


【解决方案1】:

正如@5gon12eder 所说,您可以使用以初始点为虚拟中点的极坐标:

#include <math.h>

//...

for(int i = 0; i < n; i++) {
    double alpha = 2.0d*M_PI*((double) rand() / RAND_MAX);
    x[i] = radius*cos(alpha)+x0;
    y[i] = radius*sin(alpha)+y0;
}

(x0,y0)为原点坐标。

【讨论】:

【解决方案2】:

只需生成 N 个角度,然后使用从那里计算 (x,y) 坐标

x1 = xCenter + r * cos(theta1)
y1 = yCenter + r * sin(theta1)

(注意:这不应该是现成的 C++ 代码。如果您需要语言方面的帮助,则需要更具体。)

【讨论】:

    猜你喜欢
    • 2018-03-09
    • 1970-01-01
    • 2015-05-24
    • 2010-12-23
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多