import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const o=JSON.parse('{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"api/presets/model/index.md"}'),t={name:"api/presets/model/index.md"},h=n(`

def sphere(radius: float, density: float) -> None

生成球体上的点集。

Args:

radius:

density:

Returns:

List[Point3]: 球体上的点集。
源代码
python
@staticmethod
def sphere(radius: float, density: float):
    """
        生成球体上的点集。
        Args:
            radius:
            density:
        Returns:
            List[Point3]: 球体上的点集。
        """
    area = 4 * np.pi * radius ** 2
    num = int(area * density)
    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
    theta_list = np.sqrt(num * np.pi) * phi_list
    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
    z_array = radius * np.cos(phi_list)
    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

class GeometricModels

@staticmethod

def sphere(radius: float, density: float) -> None

 生成球体上的点集。

Args:

radius:

density:

Returns:

List[Point3]: 球体上的点集。
源代码
python
@staticmethod
def sphere(radius: float, density: float):
    """
        生成球体上的点集。
        Args:
            radius:
            density:
        Returns:
            List[Point3]: 球体上的点集。
        """
    area = 4 * np.pi * radius ** 2
    num = int(area * density)
    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
    theta_list = np.sqrt(num * np.pi) * phi_list
    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
    z_array = radius * np.cos(phi_list)
    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

var area = 4 * np.pi * radius ** 2

var num = int(area * density)

var phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])

var theta_list = np.sqrt(num * np.pi) * phi_list

var x_array = radius * np.sin(phi_list) * np.cos(theta_list)

var y_array = radius * np.sin(phi_list) * np.sin(theta_list)

var z_array = radius * np.cos(phi_list)

`,23),p=[h];function l(k,e,r,d,E,y){return a(),i("div",null,p)}const c=s(t,[["render",l]]);export{o as __pageData,c as default};