Matematyka 3D
Hiperboloida dwupowłokowa
Powierzchnia składa się z dwóch rozdzielonych części po przeciwnych stronach środka. Między nimi pozostaje przerwa. Zmieniaj c, aby porównać odległość między najbliższymi punktami obu części.
Pierwszy przykład
import ms3d
F = ms3d.hiperboloida_dwupowlokowa()
print(round(F(0, 0, 2), 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
Zwiększ c z 2 do 3. Odległość między najbliższymi punktami obu powłok zwiększy się z 4 do 6.
import ms3d
F = ms3d.hiperboloida_dwupowlokowa(c=3)
print(round(F(0, 0, 2), 6))
rysuj_3(F)
Wynik w konsoli:
-0.555556
Wierzchołki powłok to (0,0,c) i (0,0,-c). W przekroju Z=0 nie ma punktów powierzchni. Jest to różnica matematyczna, a nie efekt ukrywania tylnej części modelu.
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_dwupowlokowa(a=2, b=2, c=2)
a=2- Skala rozwarcia w kierunku X.
b=2- Skala rozwarcia w kierunku Y.
c=2- Odległość najbliższego punktu każdej powłoki od środka 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
Parametry a, b, c są dodatnie, a powłoki istnieją tylko dla |Z| ≥ c. Ich wierzchołki to (0, 0, c) i (0, 0, -c), więc dzieli je odległość 2c. Parametry a i b wpływają na rozwarcie.
Wszystkie parametry są dodatnie. F jest określona w całej przestrzeni, ale na samej powierzchni musi zachodzić |Z|≥c. Między powłokami pozostaje przerwa.
CDefinicja w Pythonie
def F(x, y, z, a=2, b=2, c=2):
return (z / c) ** 2 - (x / a) ** 2 - (y / b) ** 2 - 1
print(round(F(0, 0, 2), 6))
rysuj_3(F)
DKrótki zapis lambda
Ten zapis dotyczy domyślnych parametrów.
rysuj_3(lambda x, y, z: (z / 2) ** 2 - (x / 2) ** 2 - (y / 2) ** 2 - 1)
Spróbuj sam
Zmieniaj samo a przy stałym c. Czy odległość między wierzchołkami powłok też się zmienia?