Algebraische Flächen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

Ich habe ein kleines Script hergestellt, vielleicht gefällt es jemandem.
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

Code: Alles auswählen

[code]
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
plt.xticks([])
plt.yticks([])

def limit3d(mi, ma): #3d Grenzen: min, max
ax.set(xlim=[mi, ma], ylim=[mi, ma], zlim=[mi, ma])

lim = 5
limit3d(-lim,lim)

def fl(m,n,a,b,c):
X = np.arange(-lim,lim, 0.01)
Y = np.arange(-lim,lim, 0.01)
X, Y = np.meshgrid(X, Y)
Z = np.sqrt((X**m/a + Y**n/b + c))
zm = - Z
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm)
surf = ax.plot_surface(X, Y, zm, cmap=cm.RdBu)

fl(5,2,2,4,-1)
plt.show()[/code]
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

Es gelingt mit nicht, den Code mit den angebrachten indents zu versenden; es gibt ja nur eine Funktion, das ist sicher schnell zu korrigieren.
Qubit
User
Beiträge: 128
Registriert: Dienstag 7. Oktober 2008, 09:07

hubertgrassmann hat geschrieben: Montag 19. Juni 2023, 18:38 Es gelingt mit nicht, den Code mit den angebrachten indents zu versenden; es gibt ja nur eine Funktion, das ist sicher schnell zu korrigieren.
So?..

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

fig = plt.figure()
plt.xticks([])
plt.yticks([])

lim = 5

X = np.arange(-lim,lim, 0.01)
Y = np.arange(-lim,lim, 0.01)
X, Y = np.meshgrid(X, Y)

ax = fig.add_subplot(projection='3d')

def limit3d(mi, ma): #3d Grenzen: min, max
    ax.set(xlim=[mi, ma], ylim=[mi, ma], zlim=[mi, ma])

def fl(m,n,a,b,c):
    Z = np.sqrt((X**m/a + Y**n/b + c))
    ax.plot_surface(X, Y, Z, cmap=cm.coolwarm)
    ax.plot_surface(X, Y, -Z, cmap=cm.RdBu)

limit3d(-lim,lim)

#fl(5,2,2,4,-1)
fl(m=2,n=2,a=1,b=1,c=0)
plt.show()
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

Ja, danke.
Spannend wird es, wenn nicht m=n=2 gewählt wird, oder wenn man in der Z-Zeile zwischen die Klammern (( den Aufruf abs einfügt (aber dann ist es keine "algebraische" Fläche).
Benutzeravatar
Kebap
User
Beiträge: 695
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Es gelingt mit nicht, den Code mit den angebrachten indents zu versenden
Das ist schnell zu korrigieren.
Es darf vor und nach dem Code nur jeweils 1x der Befehl stehen, der durch den Knopf automatisch eingefügt wird.
Im obigen Fall wurde der Knopf anscheinend versehentlich 2x angeklickt. Dadurch kommt der Ende-Befehl zu früh.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten