楕円錐の方程式

楕円錐の方程式

楕円錐の方程式は次のように表されます:

$$
(z - w)^2 / c^2 = (x - u)^2 / a^2 + (y - v)^2 / b^2
$$

  • $(x, y, z) $は空間内の任意の点の座標
  • $(u, v, w) $は楕円錐の頂点の座標
  • $a$, $b$, $c$ はそれぞれ$x$, $y$, $z$軸方向の半径

この方程式は以下のようにも書くことができます:

$$
z = w ± c/a * sqrt(a^2 - (x - u)^2 - (y - v)^2)
$$

符号の$+$ は$z >= w$の上半分、符号の$-$ は$z <= w$の下半分を表します。

この方程式は、$(x, y)$平面上の点$(x-u, y-v)$から頂点$(u, v, w)$を通る直線の長さをcで割ったものが、楕円錐の半径 $a$, $b$の比になることを表しています。

つまり、楕円錐とは、頂点から$x-y$平面に下ろした垂線の長さと、その垂線の足からの距離の比が一定である曲面のことです。

楕円錐は$a=b=c$のとき球錐(単に「錐体」)、$a=b≠c$のとき回転楕円体、$a≠b≠c$のときは一般の楕円錐になります。

このように、楕円錐の方程式は比の関係で表され、その形状は$a$, $b$, $c$の値で決まります。

ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# パラメータ
a = 2 # x軸の半長径
b = 3 # y軸の半長径
c = 4 # z軸の半長径
u = 1 # x軸の平行移動量
v = 1 # y軸の平行移動量
w = 1 # z軸の平行移動量

# メッシュグリッドデータ
x = np.arange(-6, 6, 0.25)
y = np.arange(-6, 6, 0.25)
x, y = np.meshgrid(x, y)

z1 = (c / a) * np.sqrt(a**2 - (x - u)**2 - (y - v)**2) + w
z2 = -(c / a) * np.sqrt(a**2 - (x - u)**2 - (y - v)**2) + w

# 3Dプロット
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z1, alpha=0.5)
ax.plot_surface(x, y, z2, alpha=0.5)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

このコードは、以下の手順で楕円錐のグラフを描画します。

  1. NumPyMatplotlibをインポートします。
  2. 楕円錐のパラメータ(半長径平行移動量)を設定します。
  3. メッシュグリッドデータ($x$, $y$座標)を生成します。
  4. 楕円錐の方程式から、$z$座標を計算します。
  5. 3D空間にプロットし、軸ラベルを設定します。
  6. グラフを表示します。

このコードを実行すると、指定された楕円錐の3Dグラフが表示されます。

パラメータを変更すれば、異なる楕円錐のグラフを描くことができます。

結果解説

[実行結果]

表示されるグラフの内容を詳しく説明します。

1. 表示内容

  • 3次元の楕円錐の表面が、2つの半透明な曲面として描画されています。
  • 1つの曲面は楕円錐の上半分を、もう1つの曲面は下半分を表しています。

2. 座標軸・ラベル

  • 3次元の座標軸($X$軸、$Y$軸、$Z$軸)が表示されています。
  • 各軸にはラベル(X、Y、Z)が付いています。

3. 曲面の形状

  • 曲面の形状は、設定したパラメータ$(a, b, c, u, v, w)$によって決まります。
  • $a$は$X$軸方向の半長径、$b$は$Y$軸方向の半長径、$c$はZ軸方向の半長径です。
  • $u$、$v$、$w$は平行移動量で、楕円錐の頂点の位置を決めます。

4. 半透明効果

  • 両方の曲面は$alpha=0.5$と設定されているため、半透明になっています。
  • これにより、2つの曲面が重なった部分の形状がより分かりやすくなります。

5. 曲面の色

  • デフォルトでは、曲面の色はオレンジ色とブルーの濃淡で表現されています。
  • 色は曲面の高さ($z$座標の値)に応じて変化します。

このグラフは、与えられた楕円錐の方程式を視覚化したものです。

パラメータを変更すれば、異なる形状や位置の楕円錐を表すことができます。

半透明の重ね描画により、立体的な形状がよりわかりやすくなっています。