pyvista.SolidSphere

目次

pyvista.SolidSphere#

SolidSphere(
outer_radius: float = 0.5,
inner_radius: float = 0.0,
radius_resolution: int = 5,
start_theta: float = 0.0,
end_theta: float | None = None,
theta_resolution: int = 30,
start_phi: float = 0.0,
end_phi: float | None = None,
phi_resolution: int = 30,
center: VectorLike[float] = (0.0, 0.0, 0.0),
direction: VectorLike[float] = (0.0, 0.0, 1.0),
radians: bool = False,
tol_radius: float = 1e-08,
tol_angle: float | None = None,
) UnstructuredGrid[ソース]#

中身が全部詰まった球体を作ります.

2Dの表面である pyvista.Sphere() と比較して,ソリッドな球体は3Dの空間を埋めます.

pyvista.SolidSphereGeneric() では一様でないサンプリングが可能です.角度はデフォルトで度単位で指定されます.

PyVistaでは, theta が方位角(地球上の経度のようなもの)を表し, phi が極角(地球上の緯度のようなもの)を表すという慣例を使っています.地球上の緯度とは対照的に,ここでは phi は北極で0度,南極で180度です.デフォルトでは phi=0 が正のZ軸になります.また, theta=0 はデフォルトで正のX軸上にあります.

θの値は最大360度の範囲であればどのような値でも良いが,大きな値は終点の重なり検出で問題が生じる可能性があります.

パラメータ:
outer_radiusfloat, default: 0.5

球の外側の半径.非負でなければなりません.

inner_radiusfloat, default: 0.0

球の内側の半径.負でなく, outer_radius よりも小さくなければならない.

radius_resolutionint, default: 5

半径方向の点の数.

start_thetafloat, default: 0.0

開始方位角.

end_thetafloat, default: 360.0

終了方位角. end_thetastart_theta よりも大きくなければなりません.

theta_resolutionint, default: 30

theta 方向の点の数.

start_phifloat, default: 0.0

極角を開始します. phi は0度から180度の間でなければなりません.

end_phifloat, default: 180.0

極角を終了します. phi は0度から180度の間でなければなりません. end_phistart_phi より大きくなければなりません.

phi_resolutionint, default: 30

極軸を含む phi 方向の点数,つまり phi=0phi=180 の度数,該当する場合.

centersequence[float], default: (0.0, 0.0, 0.0)

[x, y, z] の中心座標ベクトル.

directionsequence[float], default: (0.0, 0.0, 1.0)

中心 から緯度 phi 度の球の北極を指す [x, y, z] の方向座標ベクトル.

radiansbool, default: False

thetaphi にラジアンを使うかどうか.デフォルトは度です.

tol_radiusfloat, default: 1.0e-8

radius に対する終点検出の絶対許容誤差.

tol_anglefloat, optional

phi``と``θ``の端点検出の絶対許容誤差,単位は radians パラメータの選択によって決定されます.デフォルトは1.0e-8度,または1.0e-8度をラジアンに変換した値です.

戻り値:
pyvista.UnstructuredGrid

ソリッド球体メッシュ.

参考

pyvista.Sphere

外側の2次元表面を表す球体.

pyvista.SolidSphereGeneric

より柔軟なパラメータ定義を使用します.

中身が全部詰まった球体を作ります.

>>> import pyvista as pv
>>> import numpy as np
>>> solid_sphere = pv.SolidSphere()
>>> solid_sphere.plot(show_edges=True)
../../../_images/pyvista-SolidSphere-1_00_00.png

立体の球体は2次元の pyvista.Sphere() に比べて3次元です.内部構造を見るために,立体の半球を生成してください.

>>> isinstance(solid_sphere, pv.UnstructuredGrid)
True
>>> partial_solid_sphere = pv.SolidSphere(start_theta=180, end_theta=360)
>>> partial_solid_sphere.plot(show_edges=True)
../../../_images/pyvista-SolidSphere-1_01_00.png

固い球体内部のセルの構造を見るために,球体の1/4だけが生成します.セルは分解され,半径方向の位置で色分けされています.

>>> partial_solid_sphere = pv.SolidSphere(
...     start_theta=180,
...     end_theta=360,
...     start_phi=0,
...     end_phi=90,
...     radius_resolution=5,
...     theta_resolution=8,
...     phi_resolution=8,
... )
>>> partial_solid_sphere['cell_radial_pos'] = np.linalg.norm(
...     partial_solid_sphere.cell_centers().points, axis=-1
... )
>>> partial_solid_sphere.explode(1).plot()
../../../_images/pyvista-SolidSphere-1_02_00.png