5.2【問2】次の仕様を持つパッケージを作成してください。

パッケージ名、サブパッケージ名、モジュール名、関数名の一例を考え、ディレクトリ構成と簡単なコードの例を書きなさい。

2点の座標 p1(x1, y1) と p2(x2, y2) が与えられたときに、次の値を求めます。
 パッケージ1（図形の面積・体積を求めるパッケージ）
①「2点を結ぶ直線を斜辺とみなした直角三角形の面積」を求める関数
②「2点を結ぶ直線を対角線とみなした長方形の面積」を求める関数
③「2点を結ぶ直線を斜辺とみなした直角三角形を回転させてできる円錐の体積」を求める関数
④「2点を結ぶ直線を対角線とみなした長方形を回転させてできる円柱の体積」を求める関数

なお、直角三角形の
• 底辺の長さを |x2 - x1|
• 高さの長さを |y2 - y1|
とし、円錐の底面の半径を底辺の長さ、高さを高さの長さとみなすものとします。

• パッケージ2（補助計算用のサブパッケージ）
⑤「同じ2点に対して、直角三角形の底辺と高さの長さ」を求める関数
• パッケージ2は、パッケージ1の中にあるサブパッケージとして作成し、パッケージ1のモジュールからインポートして利用できるようにしてください。
• また、main.py からこれらの関数を呼び出す import 文と、実行例（関数を1回呼んで結果を表示する程度）も書いてください。

【パッケージ構成の例】
📂 project/
 ├─ 📄 main.py
 └─ 📂 geom/
      ├─ 📄 __init__.py
      ├─ 📄 triangle.py
      │   └ right_triangle_area()  … ①の関数
      ├─ 📄 rectangle.py
      │   └ rectangle_area()  … ②の関数
      ├─ 📄 cone.py
      │   └ cone_volume()  … ③の関数
      ├─ 📄 cylinder.py
      │   └ cylinder_volume()  … ④の関数
      └─ 📂 helpers/
           ├─ 📄 __init__.py
           └─ 📄 dimensions.py
                 └ base_and_height()  … ⑤の関数

【実行結果例】
p1(0.0, 0.0), p2(3.0, 4.0)
---
底辺と高さ: 3.0, 4.0
三角形の面積: 6.0
長方形の面積: 12.0
円錐の体積: 37.69911184307752
円柱の体積: 113.09733552923255
