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"):
if coordsystem == "para":
constants_u = wu.deg2rad(np.arange(0, 360, 15))
all_v = np.linspace(-np.pi / 2, np.pi / 2, 361)
constants_u = wu.deg2rad(np.arange(-90, 91, 15))
all_v = wu.deg2rad(np.arange(-180, 180, 1))
for u in constants_u:
xm, ym, zm = ell.para2cart(u, all_v)
fig.add_trace(go.Scatter3d(
@@ -71,8 +71,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False
))
all_u = np.linspace(0, 2 * np.pi, 361)
constants_v = wu.deg2rad(np.arange(-75, 90, 15))
all_u = wu.deg2rad(np.arange(-90, 91, 1))
constants_v = wu.deg2rad(np.arange(-180, 180, 15))
for v in constants_v:
x, y, z = ell.para2cart(all_u, v)
fig.add_trace(go.Scatter3d(
@@ -82,8 +82,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
))
elif coordsystem == "ell":
constants_beta = wu.deg2rad(np.arange(-75, 90, 15))
all_lamb = np.linspace(0, 2 * np.pi, 361)
constants_beta = wu.deg2rad(np.arange(-90, 91, 15))
all_lamb = wu.deg2rad(np.arange(-180, 180, 1))
for beta in constants_beta:
xyz = ell.ell2cart(beta, all_lamb)
fig.add_trace(go.Scatter3d(
@@ -92,19 +92,29 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False
))
all_beta = np.linspace(-np.pi / 2, np.pi / 2, 361)
constants_lamb = wu.deg2rad(np.arange(0, 360, 15))
all_beta = wu.deg2rad(np.arange(-90, 91, 1))
all_beta[0] += 1e-8
all_beta[-1] -= 1e-8
constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))
for lamb in constants_lamb:
if lamb != 0 and abs(lamb) != np.pi:
xyz = ell.ell2cart(all_beta, lamb)
fig.add_trace(go.Scatter3d(
x=xyz[:, 0], y=xyz[:, 1], z=xyz[:, 2], mode="lines",
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":
constants_phi = wu.deg2rad(np.arange(-75, 90, 15))
all_lamb = np.linspace(0, 2 * np.pi, 361)
constants_phi = wu.deg2rad(np.arange(-90, 91, 15))
all_lamb = wu.deg2rad(np.arange(-180, 180, 1))
for phi in constants_phi:
x, y, z = ell.geod2cart(phi, all_lamb, 0)
fig.add_trace(go.Scatter3d(
@@ -113,8 +123,8 @@ def figure_constant_lines(fig, ell: EllipsoidTriaxial, coordsystem: str = "para"
showlegend=False
))
all_phi = np.linspace(-np.pi / 2, np.pi / 2, 361)
constants_lamb = wu.deg2rad(np.arange(0, 360, 15))
all_phi = wu.deg2rad(np.arange(-90, 91, 1))
constants_lamb = wu.deg2rad(np.arange(-180, 180, 15))
for lamb in constants_lamb:
x, y, z = ell.geod2cart(all_phi, lamb, 0)
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",
" if coordsystem == \"para\":\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",
" xm, ym, zm = ell.para2cart(u, all_v)\n",
" fig.add_trace(go.Scatter3d(\n",
@@ -130,7 +130,7 @@
" ))\n",
"\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",
" x, y, z = ell.para2cart(all_u, v)\n",
" fig.add_trace(go.Scatter3d(\n",
@@ -141,7 +141,7 @@
"\n",
" elif coordsystem == \"ell\":\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",
" xyz = ell.ell2cart(beta, all_lamb)\n",
" fig.add_trace(go.Scatter3d(\n",
@@ -153,7 +153,7 @@
" all_beta = wu.deg2rad(np.arange(-90, 91, 0.5))\n",
" all_beta[0] += 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",
" if lamb != 0 and lamb != np.pi:\n",
" xyz = ell.ell2cart(all_beta, lamb)\n",
@@ -173,7 +173,7 @@
"\n",
" elif coordsystem == \"geod\":\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",
" x, y, z = ell.geod2cart(phi, all_lamb, 0)\n",
" fig.add_trace(go.Scatter3d(\n",
@@ -183,7 +183,7 @@
" ))\n",
"\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",
" x, y, z = ell.geod2cart(all_phi, lamb, 0)\n",
" fig.add_trace(go.Scatter3d(\n",