Darstellung aller Parameterlinien konstant

This commit is contained in:
2026-02-04 11:41:43 +01:00
parent 3930b3207a
commit 96e489a116
2 changed files with 34 additions and 24 deletions

View File

@@ -61,8 +61,8 @@ def ellipsoid_figure(ell: EllipsoidTriaxial, title="Dreiachsiges Ellipsoid"):
def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"): def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"):
if coordsystem == "para": if coordsystem == "para":
constants_u = wu.deg2rad(np.arange(0, 360, 15)) constants_u = wu.deg2rad(np.arange(-90, 91, 15))
all_v = np.linspace(-np.pi / 2, np.pi / 2, 361) all_v = wu.deg2rad(np.arange(-180, 180, 1))
for u in constants_u: for u in constants_u:
xm, ym, zm = ell.para2cart(u, all_v) xm, ym, zm = ell.para2cart(u, all_v)
fig.add_trace(go.Scatter3d( fig.add_trace(go.Scatter3d(
@@ -71,8 +71,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False showlegend=False
)) ))
all_u = np.linspace(0, 2 * np.pi, 361) all_u = wu.deg2rad(np.arange(-90, 91, 1))
constants_v = wu.deg2rad(np.arange(-75, 90, 15)) constants_v = wu.deg2rad(np.arange(-180, 180, 15))
for v in constants_v: for v in constants_v:
x, y, z = ell.para2cart(all_u, v) x, y, z = ell.para2cart(all_u, v)
fig.add_trace(go.Scatter3d( fig.add_trace(go.Scatter3d(
@@ -82,8 +82,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
)) ))
elif coordsystem == "ell": elif coordsystem == "ell":
constants_beta = wu.deg2rad(np.arange(-75, 90, 15)) constants_beta = wu.deg2rad(np.arange(-90, 91, 15))
all_lamb = np.linspace(0, 2 * np.pi, 361) all_lamb = wu.deg2rad(np.arange(-180, 180, 1))
for beta in constants_beta: for beta in constants_beta:
xyz = ell.ell2cart(beta, all_lamb) xyz = ell.ell2cart(beta, all_lamb)
fig.add_trace(go.Scatter3d( fig.add_trace(go.Scatter3d(
@@ -92,19 +92,29 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False showlegend=False
)) ))
all_beta = np.linspace(-np.pi / 2, np.pi / 2, 361) all_beta = wu.deg2rad(np.arange(-90, 91, 1))
constants_lamb = wu.deg2rad(np.arange(0, 360, 15)) all_beta[0] += 1e-8
all_beta[-1] -= 1e-8
constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))
for lamb in constants_lamb: for lamb in constants_lamb:
xyz = ell.ell2cart(all_beta, lamb) if lamb != 0 and abs(lamb) != np.pi:
fig.add_trace(go.Scatter3d( xyz = ell.ell2cart(all_beta, lamb)
x=xyz[:, 0], y=xyz[:, 1], z=xyz[:, 2], mode="lines", fig.add_trace(go.Scatter3d(
line=dict(width=1, color="black"), x=xyz[:, 0], y=xyz[:, 1], z=xyz[:, 2], mode="lines",
showlegend=False line=dict(width=1, color="black"),
)) showlegend=False
))
else:
x, y, z = ell.para2cart(wu.deg2rad(np.arange(-90, 91, 1)), lamb)
fig.add_trace(go.Scatter3d(
x=x, y=y, z=z, mode="lines",
line=dict(width=1, color="black"),
showlegend=False
))
elif coordsystem == "geod": elif coordsystem == "geod":
constants_phi = wu.deg2rad(np.arange(-75, 90, 15)) constants_phi = wu.deg2rad(np.arange(-90, 91, 15))
all_lamb = np.linspace(0, 2 * np.pi, 361) all_lamb = wu.deg2rad(np.arange(-180, 180, 1))
for phi in constants_phi: for phi in constants_phi:
x, y, z = ell.geod2cart(phi, all_lamb, 0) x, y, z = ell.geod2cart(phi, all_lamb, 0)
fig.add_trace(go.Scatter3d( fig.add_trace(go.Scatter3d(
@@ -113,8 +123,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False showlegend=False
)) ))
all_phi = np.linspace(-np.pi / 2, np.pi / 2, 361) all_phi = wu.deg2rad(np.arange(-90, 91, 1))
constants_lamb = wu.deg2rad(np.arange(0, 360, 15)) constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))
for lamb in constants_lamb: for lamb in constants_lamb:
x, y, z = ell.geod2cart(all_phi, lamb, 0) x, y, z = ell.geod2cart(all_phi, lamb, 0)
fig.add_trace(go.Scatter3d( fig.add_trace(go.Scatter3d(

View File

@@ -120,7 +120,7 @@
"def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = \"para\", linewidth=1, color1=\"black\", color2=\"grey\"):\n", "def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = \"para\", linewidth=1, color1=\"black\", color2=\"grey\"):\n",
" if coordsystem == \"para\":\n", " if coordsystem == \"para\":\n",
" constants_u = wu.deg2rad(np.arange(-90, 91, 15))\n", " constants_u = wu.deg2rad(np.arange(-90, 91, 15))\n",
" all_v = wu.deg2rad(np.arange(-180, 181, 0.5))\n", " all_v = wu.deg2rad(np.arange(-180, 180, 0.5))\n",
" for u in constants_u:\n", " for u in constants_u:\n",
" xm, ym, zm = ell.para2cart(u, all_v)\n", " xm, ym, zm = ell.para2cart(u, all_v)\n",
" fig.add_trace(go.Scatter3d(\n", " fig.add_trace(go.Scatter3d(\n",
@@ -130,7 +130,7 @@
" ))\n", " ))\n",
"\n", "\n",
" all_u = wu.deg2rad(np.arange(-90, 91, 0.5))\n", " all_u = wu.deg2rad(np.arange(-90, 91, 0.5))\n",
" constants_v = wu.deg2rad(np.arange(-180, 181, 15))\n", " constants_v = wu.deg2rad(np.arange(-180, 180, 15))\n",
" for v in constants_v:\n", " for v in constants_v:\n",
" x, y, z = ell.para2cart(all_u, v)\n", " x, y, z = ell.para2cart(all_u, v)\n",
" fig.add_trace(go.Scatter3d(\n", " fig.add_trace(go.Scatter3d(\n",
@@ -141,7 +141,7 @@
"\n", "\n",
" elif coordsystem == \"ell\":\n", " elif coordsystem == \"ell\":\n",
" constants_beta = wu.deg2rad(np.arange(-90, 91, 15))\n", " constants_beta = wu.deg2rad(np.arange(-90, 91, 15))\n",
" all_lamb = wu.deg2rad(np.arange(-180, 181, 0.5))\n", " all_lamb = wu.deg2rad(np.arange(-180, 180, 0.5))\n",
" for beta in constants_beta:\n", " for beta in constants_beta:\n",
" xyz = ell.ell2cart(beta, all_lamb)\n", " xyz = ell.ell2cart(beta, all_lamb)\n",
" fig.add_trace(go.Scatter3d(\n", " fig.add_trace(go.Scatter3d(\n",
@@ -153,7 +153,7 @@
" all_beta = wu.deg2rad(np.arange(-90, 91, 0.5))\n", " all_beta = wu.deg2rad(np.arange(-90, 91, 0.5))\n",
" all_beta[0] += 1e-8\n", " all_beta[0] += 1e-8\n",
" all_beta[-1] -= 1e-8\n", " all_beta[-1] -= 1e-8\n",
" constants_lamb = wu.deg2rad(np.arange(-180, 181, 15))\n", " constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))\n",
" for lamb in constants_lamb:\n", " for lamb in constants_lamb:\n",
" if lamb != 0 and lamb != np.pi:\n", " if lamb != 0 and lamb != np.pi:\n",
" xyz = ell.ell2cart(all_beta, lamb)\n", " xyz = ell.ell2cart(all_beta, lamb)\n",
@@ -173,7 +173,7 @@
"\n", "\n",
" elif coordsystem == \"geod\":\n", " elif coordsystem == \"geod\":\n",
" constants_phi = wu.deg2rad(np.arange(-90, 91, 15))\n", " constants_phi = wu.deg2rad(np.arange(-90, 91, 15))\n",
" all_lamb = wu.deg2rad(np.arange(-180, 181, 0.5))\n", " all_lamb = wu.deg2rad(np.arange(-180, 180, 0.5))\n",
" for phi in constants_phi:\n", " for phi in constants_phi:\n",
" x, y, z = ell.geod2cart(phi, all_lamb, 0)\n", " x, y, z = ell.geod2cart(phi, all_lamb, 0)\n",
" fig.add_trace(go.Scatter3d(\n", " fig.add_trace(go.Scatter3d(\n",
@@ -183,7 +183,7 @@
" ))\n", " ))\n",
"\n", "\n",
" all_phi = wu.deg2rad(np.arange(-90, 91, 0.5))\n", " all_phi = wu.deg2rad(np.arange(-90, 91, 0.5))\n",
" constants_lamb = wu.deg2rad(np.arange(-180, 181, 15))\n", " constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))\n",
" for lamb in constants_lamb:\n", " for lamb in constants_lamb:\n",
" x, y, z = ell.geod2cart(all_phi, lamb, 0)\n", " x, y, z = ell.geod2cart(all_phi, lamb, 0)\n",
" fig.add_trace(go.Scatter3d(\n", " fig.add_trace(go.Scatter3d(\n",