zone_axes プログラム仕様

概要: 立方晶系の結晶面とゾーン軸を3Dで可視化するスクリプト。 詳細説明:

このスクリプトは、matplotlibを使用して3Dプロットを作成し、指定されたミラー指数(hkl)を持つ結晶面と、 それらの法線ベクトル、および特定のゾーン軸を描画します。 主に[001]ゾーン軸に属する結晶面を表示し、結晶学における面と軸の関係を視覚的に理解するのに役立ちます。 生成されたプロットはPNG画像として保存されます。

関連リンク: 技術ドキュメント: zone_axes.py

crystal.zone_axes.main()[ソース]

概要: 立方晶系の結晶面と[001]ゾーン軸を3Dで可視化し、画像を保存します。 詳細説明:

matplotlibを使用して3Dプロットを設定し、以下の要素を描画します。 - 3次元の軸とプロット範囲の設定。 - [001]ゾーン軸とそれに属する複数の結晶面(例: (110), (120), (010) など)。 - 各結晶面の法線ベクトル。 - 凡例とタイトル。 最終的に生成されたプロットは 'cubic_planes_001_zone.png' というファイル名で保存され、 画面にも表示されます。

戻り値:

None

crystal.zone_axes.plot_plane(ax, h, k, l, color, alpha, label)[ソース]

概要: ミラー指数(hkl)で定義される結晶面を3D空間にプロットします。 詳細説明:

この関数は、立方晶系においてミラー指数(hkl)で定義される結晶面を、 平面方程式 hx + ky + lz = d (ここではd=1を仮定) に基づいて3Dプロットします。 プロット範囲はx, y, z軸それぞれ[-1.5, 1.5]に制限され、この範囲外に出る部分は表示されません。 ミラー指数に特定のゼロ値がある場合の特殊なケース(例: l=0, k=0, h=0)も処理します。 軸オブジェクトに直接描画を行い、明示的な戻り値はありません。

パラメータ:
  • ax (mpl_toolkits.mplot3d.axes3d.Axes3D) -- matplotlibの3D軸オブジェクト。平面が描画されるAxes3Dインスタンス。

  • h (int) -- 平面のミラー指数 h。

  • k (int) -- 平面のミラー指数 k。

  • l (int) -- 平面のミラー指数 l。

  • color (str) -- 平面の色を示す文字列。例: 'red', 'blue'。

  • alpha (float) -- 平面の透明度 (0.0から1.0)。

  • label (str) -- 平面を示す凡例ラベル文字列。例: r'$(110)$'。

戻り値:

None