Matematyka 3D
Fale sinusoidalne
Wysokość tej powierzchni zmienia się w dwóch kierunkach. Sinus i cosinus tworzą powtarzające się wzniesienia i zagłębienia.
import ms3d
rysuj_3(ms3d.fale_sinusoidalne(amplituda=1.5, czestotliwosc=1))
Zmień amplituda na 3. Potem przywróć 1.5 i zmień czestotliwosc na 2. Która zmiana zwiększa wysokość, a która zagęszcza wzniesienia?
Model pokazuje pierwszy przykład. Parametry zmieniaj w edytorze. Kolor zależy od wysokości, a nie od obrotu modelu.
AParametry
Domyślne wartości to amplituda=1.5, czestotliwosc=1. Amplituda określa największe wychylenie od wysokości zero. Parametr częstotliwości określa zmianę kąta na jednostkę odległości.
Biblioteka wymaga, aby oba parametry były dodatnimi, skończonymi liczbami int lub float, bez wartości logicznych. Nie przyjmuje amplitudy równej zero ani ujemnej.
BWzór i dziedzina
A oznacza amplitudę, a k parametr czestotliwosc. Kąty są w radianach. Pełny obrót ma 2π radianów. Okres wzdłuż każdej osi wynosi 2π/k.
Wysokość jest określona dla wszystkich rzeczywistych x i y. Funkcja F przyjmuje dowolną trójkę liczb rzeczywistych. Wartość zero wskazuje punkty powierzchni.
Co dzieje się wzdłuż X = 0? A wzdłuż Y = 0?
CDefinicja w Pythonie
import math
def F(x, y, z, amplituda=1.5, czestotliwosc=1):
return z - amplituda*math.sin(czestotliwosc*x)*math.cos(czestotliwosc*y)
rysuj_3(F)
DZapis lambda
import math
rysuj_3(lambda x, y, z: z - 1.5*math.sin(x)*math.cos(y))
Przewidź wysokość w punkcie x = π/2, y = 0. Czy znajdziesz takie wzniesienie na modelu?