※当サイトはPRを含みます

【3D点群処理】Numpyで球の点群データを生成

PythonのNumpyで球形の点群データを生成します。

今回は、半径r=0.5、1000点からなる球の形をした点群を生成してみます。

import numpy as np 
import random

# 球の点群を作成
def get_ball(num_points,r):
    point_cloud = []
    for i in range(num_points):
        t = random.random()
        t = np.arcsin(1-2*t)
        u= random.random() * 2 *np.pi-np.pi
        x = np.cos(t)*np.cos(u)*r
        y = np.cos(t)*np.sin(u)*r
        z= np.sin(t)*r
        point_cloud.append([x, y, z])
    return np.array(point_cloud)

# 点の数を設定
num_points=1000

# 球の半径を設定
r=0.5

test_data=get_ball(num_points,r)