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.

Obracaj myszą lub strzałkami. Kółko przybliża, Home przywraca widok.

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
(xa)2+(yb)2-(zc)2=1

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?

Dokładność, obszar obliczeń i ograniczenia środowiska