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?

Obracaj myszą lub strzałkami. Kółko przybliża. Home przywraca widok.

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
z=Asin(kx)cos(ky)

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?

Dlaczego drobne fale mogą być niedokładne?