Python Создание 3D сферы в numpy - PullRequest
0 голосов
/ 05 апреля 2020

Итак, в настоящее время я создал numpy трехмерный массив нулей, но я пытаюсь создать группу различных сфер, которые можно представить массивом numpy. Тем не менее, я застрял на том, как на самом деле это сделать. Как бы я мог создать массив numpy, представляющий сферу, если бы у меня был указанный центр и указанный радиус?

1 Ответ

1 голос
/ 06 апреля 2020

Это, конечно, не стандарт, но я бы использовал сферическую координату

def create_sphere(cx,cy,cz, r, resolution=360):
    '''
    create sphere with center (cx, cy, cz) and radius r
    '''
    phi = np.linspace(0, 2*np.pi, 2*resolution)
    theta = np.linspace(0, np.pi, resolution)

    theta, phi = np.meshgrid(theta, phi)

    r_xy = r*np.sin(theta)
    x = cx + np.cos(phi) * r_xy
    y = cy + np.sin(phi) * r_xy
    z = cz + r * np.cos(theta)

    return np.stack([x,y,z])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...