2016-08-10 1 views
0

Теперь я работаю, чтобы сделать вращательные траектории. Вначале мне нужно определить начальное положение вращающегося объекта. Как сделать 1000 случайных исходных позиций в трех измерениях этого типа объекта Python или NumPy? Я думаю, что функция python может решить проблему.Выполнение случайного начального положения Python

+4

Используйте «случайный» модуль. Если вы хотите получить более подробный ответ, вам придется задать более подробный вопрос. – DeepSpace

+0

Чтобы начать, посмотрите модуль 'numpy.random': http://docs.scipy.org/doc/numpy/reference/routines.random.html Если вы не знаете, как использовать любой из них, взгляните на их докстроны - многие из них включают примеры в докстеллах. Если это не поможет, отредактируйте свой вопрос с дополнительной информацией, включая то, что вы пробовали, и что не работает так, как вы ожидали. Кроме того, вы говорите «позиция», но вы не говорите, сколько измерений. Вы работаете с двумерными или трехмерными позициями? –

+0

Я работаю с 3-мя позициями –

ответ

0

Если я понимаю вопрос, вам нужно подобрать точку, равномерно распределенную по сфере. См. here.

import math 
import numpy as np 

cos_theta = 2.0 * np.random.random(100) - 1.0 
phi  = 2.0 * math.pi * np.random.random(100) 

sin_theta = np.sqrt((1.0 - cos_theta)*(1.0 + cos_theta)) 

x = sin_theta * np.cos(phi) 
y = sin_theta * np.sin(phi) 
z = cos_theta 

print(x, y, z) 
print("---------------------") 
print(np.square(x) + np.square(y) + np.square(z)) 
+0

Спасибо. Оно работает. –