Matematyka 3D
Graniastosłup trójkątny
Powierzchnia ma dwie równoboczne podstawy i trzy prostokątne ściany boczne. Przekroje równoległe do podstaw są takimi samymi trójkątami. Zmieniaj bok podstawy i wysokość, aby porównywać proporcje.
Pierwszy przykład
import ms3d
F = ms3d.graniastoslup_trojkatny()
print(round(F(0, 0, 3), 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ń bok z 5 na 3. Podstawy się zmniejszą, a wysokość pozostanie taka sama.
import ms3d
F = ms3d.graniastoslup_trojkatny(bok=3)
print(round(F(0, 0, 3), 6))
rysuj_3(F)
Wynik w konsoli:
0.0
Każdy przekrój równoległy do podstaw ma ten sam kształt i rozmiar. Środek ciężkości podstawy leży na osi Z. Jego odległość od górnego wierzchołka trójkąta jest większa niż od przeciwległego boku.
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.graniastoslup_trojkatny(bok=5, wysokosc=6)
bok=5- Długość każdego boku równobocznej podstawy.
wysokosc=6- Pełna odległość między podstawami 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
Wymagane są b = bok > 0 i h = wysokosc > 0; t = √3·b/2 to wysokość trójkąta podstawy. Oś graniastosłupa to Z, a podstawy leżą na Z = ±h/2. Nierówności tworzące maksimum opisują trzy boki i obie podstawy.
Bok i wysokość są dodatnie. Podstawy leżą na Z=±wysokosc/2. F jest określona w całej przestrzeni; poziom zero obejmuje także podstawy.
CDefinicja w Pythonie
import math
def F(x, y, z, bok=5, wysokosc=6):
a, h = (bok, wysokosc)
t = math.sqrt(3) * a / 2
return max(-y - t / 3, (math.sqrt(3) * x + y - 2 * t / 3) / 2, (-math.sqrt(3) * x + y - 2 * t / 3) / 2, abs(z) - h / 2)
print(round(F(0, 0, 3), 6))
rysuj_3(F)
Spróbuj sam
Porównaj ten model z ostrosłupem. W którym z nich rozmiar poziomego przekroju zależy od wysokości?