Matematyka 3D
Walec
Powierzchnia obejmuje bok walca i dwie kołowe podstawy. Przekroje prostopadłe do jego osi mają ten sam promień. Zmieniaj promień i wysokość, aby porównywać proporcje.
Pierwszy przykład
import ms3d
F = ms3d.walec()
print(round(F(3, 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 r z 3 do 2, nie zmieniając wysokości. Wszystkie poziome przekroje między podstawami zmniejszą się jednakowo.
import ms3d
F = ms3d.walec(r=2)
print(round(F(3, 0, 0), 6))
rysuj_3(F)
Wynik w konsoli:
1.0
Podstawy leżą na wysokościach -3 i 3 dla domyślnej wysokości 6. Matematycznie bok jest zakrzywiony; widoczne płaskie fragmenty wynikają z przybliżenia trójkątami.
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.walec(r=3, wysokosc=6)
r=3- Promień obu kołowych podstaw.
wysokosc=6- Pełna wysokość wzdłuż osi Z.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Oś to Z, a r i wysokość h są dodatnie. Podstawy leżą na Z = ±h/2. Wzór z maksimum łączy powierzchnię boczną z podstawami; nie oznacza wypełnienia wnętrza.
Promień i wysokość są dodatnie. F jest określona w całej przestrzeni. Rysowana powierzchnia obejmuje bok i podstawy, bez wypełniania objętości.
CDefinicja w Pythonie
import math
def F(x, y, z, r=3, wysokosc=6):
r, h = (r, wysokosc)
return max(math.hypot(x, y) - r, abs(z) - h / 2)
print(round(F(3, 0, 0), 6))
rysuj_3(F)
Spróbuj sam
Ustaw wysokość 3 i promień 2. Jak zmienią się odległości między podstawami i długość osi widocznego walca?