Получить N случайных равноудаленных точек от заданной точки

Мне нужна функция, которая позволит мне найти n случайных точек. Эти точки должны иметь одинаковое расстояние от заданной точки. Вы можете мне помочь?

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

0

Решение

Как говорит @ 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 ++. Если вам нужна помощь с языком, вам нужно быть более конкретным.)

2

По вопросам рекламы [email protected]