Matematyka 3D
Hiperboloida jednopowłokowa
Jest to jedna połączona powierzchnia z przewężeniem w środku. Jej poziome przekroje są elipsami, które poszerzają się po obu stronach przewężenia. Zmieniaj półosie, aby porównywać proporcje.
Pierwszy przykład
import ms3d
F = ms3d.hiperboloida_jednopowlokowa()
print(round(F(2, 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
Zmniejsz c z 3 do 1.5. Przekrój Z=0 pozostanie taki sam, ale powierzchnia będzie szybciej rozszerzać się ponad nim i pod nim.
import ms3d
F = ms3d.hiperboloida_jednopowlokowa(c=1.5)
print(round(F(2, 0, 0), 6))
rysuj_3(F)
Wynik w konsoli:
0.0
Najwęższy poziomy przekrój ma półosie a i b. Dla każdej wysokości Z istnieje eliptyczny przekrój. Nie ma przerwy oddzielającej górną i dolną część.
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.hiperboloida_jednopowlokowa(a=2, b=2, c=3)
a=2- Półoś najwęższego przekroju wzdłuż X.
b=2- Półoś najwęższego przekroju wzdłuż Y.
c=3- Skala pionowa wpływająca na rozszerzanie powierzchni.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Parametry a, b, c są dodatnie, a oś to Z. Najmniejszy poziomy przekrój leży na Z = 0 i ma półosie a oraz b. Powierzchnia nie jest zamkniętą granicą skończonej bryły.
Parametry a, b i c są dodatnie. F jest określona w całej przestrzeni. Powierzchnia jest połączona i nieograniczona.
CDefinicja w Pythonie
def F(x, y, z, a=2, b=2, c=3):
return (x / a) ** 2 + (y / b) ** 2 - (z / c) ** 2 - 1
print(round(F(2, 0, 0), 6))
rysuj_3(F)
DKrótki zapis lambda
Ten zapis dotyczy domyślnych parametrów.
rysuj_3(lambda x, y, z: (x / 2) ** 2 + (y / 2) ** 2 - (z / 3) ** 2 - 1)
Spróbuj sam
Porównaj z hiperboloidą dwupowłokową dla tych samych a, b i c. Która powierzchnia ma punkty w płaszczyźnie Z=0?