Matematyka 3D
Elipsoida
Elipsoida jest powierzchnią o trzech osiach symetrii. Długości półosi a, b i c określają rozciągnięcie w przestrzeni. Gdy wszystkie trzy są równe, otrzymujemy sferę.
Pierwszy przykład
import ms3d
F = ms3d.elipsoida()
print(round(F(5, 0, 0), 6))
rysuj_3(F)
Wynik w konsoli:
0.0
Wartość F w podanym punkcie nie jest wysokością powierzchni. Narysowane są punkty F=0, bez wypełniania wnętrza bryły. Matematyczna powierzchnia i obszar podglądu to różne rzeczy.
Podgląd przedstawia pierwszy program. Zmianę kodu wykonaj w edytorze. Obrót, przesuwanie i przybliżanie nie obliczają nowych wartości funkcji.
Eksperymentuj
Zmień a z 5 na 3. Dwie półosie będą równe, więc poziome przekroje staną się okręgami.
import ms3d
F = ms3d.elipsoida(a=3)
print(round(F(5, 0, 0), 6))
rysuj_3(F)
Wynik w konsoli:
0.666667
Środek pozostaje w początku układu. Skrajne punkty na osiach są oddalone od niego o a, b i c. Dopiero równość wszystkich trzech półosi daje sferę.
Odkrywaj w swoim tempie
AParametry i wartości domyślne
Pierwszy program wywołuje funkcję bez ustawień, czyli korzysta z wszystkich wartości domyślnych podanych poniżej.
ms3d.elipsoida(a=5, b=3, c=2)
a=5- Półoś wzdłuż X.
b=3- Półoś wzdłuż Y.
c=2- Półoś wzdłuż Z.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Półosie są dodatnie i leżą wzdłuż X, Y oraz Z, a środek jest w początku układu. Równanie opisuje powierzchnię, bez wnętrza; pomocnicza F jest określona dla dowolnych współrzędnych.
Wszystkie półosie są dodatnie. Funkcja F przyjmuje dowolne trzy współrzędne; powierzchnia to jej poziom zero, a nie cała dziedzina.
CDefinicja w Pythonie
import math
def F(x, y, z, a=5, b=3, c=2):
return math.hypot(x / a, y / b, z / c) - 1
print(round(F(5, 0, 0), 6))
rysuj_3(F)
DKrótki zapis lambda
Ten zapis dotyczy domyślnych parametrów.
import math
rysuj_3(lambda x, y, z: math.hypot(x / 5, y / 3, z / 2) - 1)
Spróbuj sam
Ustaw wszystkie półosie równe 3 i porównaj wynik z ms3d.sfera(r=3). Czy podobny obraz oznacza, że obie funkcje F zwracają wszędzie te same liczby?