Matematyka 3D
Fale koncentryczne
Wzniesienia i zagłębienia tworzą okręgi wokół środka. Ich wysokość nie maleje z odległością, bo amplituda jest stała. Zmieniaj częstotliwość, aby porównać odstępy między pierścieniami.
Pierwszy przykład
import ms3d
F = ms3d.fale_koncentryczne()
print(round(F(0, 0, 1.5), 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 częstotliwość z 1.2 do 0.6. Odległość między kolejnymi pierścieniami podwoi się, ale ich wysokość się nie zmieni.
import ms3d
F = ms3d.fale_koncentryczne(czestotliwosc=0.6)
print(round(F(0, 0, 1.5), 6))
rysuj_3(F)
Wynik w konsoli:
0.0
W środku występuje maksimum. Amplituda nie maleje wraz z odległością, inaczej niż w powierzchni sinc. Kształt zależy wyłącznie od odległości od środka, nie od kierunku.
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.fale_koncentryczne(amplituda=1.5, czestotliwosc=1.2)
amplituda=1.5- Największe wychylenie od wysokości zero.
czestotliwosc=1.2- Zmiana kąta na jednostkę odległości od środka.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Dodatnie A = amplituda i k = czestotliwosc określają wychylenie i zmianę kąta na jednostkę odległości. Promieniowy okres wynosi 2π/k, a w środku wysokość wynosi A. Wysokość jest określona na całej płaszczyźnie.
Oba parametry są dodatnie. Wysokość jest określona dla dowolnych X i Y. Model pokazuje tylko ograniczony fragment nieograniczonej powierzchni.
CDefinicja w Pythonie
import math
def F(x, y, z, amplituda=1.5, czestotliwosc=1.2):
A, k = (amplituda, czestotliwosc)
return z - A * math.cos(k * math.hypot(x, y))
print(round(F(0, 0, 1.5), 6))
rysuj_3(F)
Spróbuj sam
Porównaj punkty (3,0) i (0,3) w płaszczyźnie XY. Dlaczego mają tę samą wysokość dla dowolnych dozwolonych parametrów?