Matematyka 2D
Superelipsa
Krzywa może przypominać elipsę, romb albo zaokrąglony prostokąt. O kształcie decyduje wykładnik n, a nie tylko rozmiary. Porównaj n równe 1, 2 i 4.
Pierwszy przykład
import ms2d
F = ms2d.superelipsa()
print(round(F(4, 0), 6))
rysuj_2(F)
Wynik w konsoli:
0.0
Wartość F w podanym punkcie jest liczbą pomocniczą, a nie współrzędną Y. Do krzywej należą punkty z wynikiem zero. Dziedzina F obejmuje więcej punktów niż sama krzywa.
Podgląd przedstawia pierwszy program. Zmianę kodu wykonaj w edytorze. Przesuwanie i przybliżanie nie obliczają nowych wartości funkcji.
Eksperymentuj
Porównaj domyślne n=3 z n=1. Potem sprawdź n=2 i n=4, nie zmieniając półosi.
import ms2d
F = ms2d.superelipsa(n=1)
print(round(F(4, 0), 6))
rysuj_2(F)
Wynik w konsoli:
0.0
Dla n=1 powstaje romb, dla n=2 elipsa, a większe n zaokrąglają obrys podobny do prostokąta. Skrajne punkty na osiach pozostają w odległościach a i b od środka.
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.
ms2d.superelipsa(a=4, b=3, n=3, x0=0, y0=0)
a=4- Dodatnia skala pozioma.
b=3- Dodatnia skala pionowa.
n=3- Dodatni wykładnik sterujący kształtem obrysu.
x0=0- Współrzędna X środka.
y0=0- Współrzędna Y środka.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Wymagane jest a, b, n > 0, a środek to (x0, y0). Dla n = 2 otrzymujemy elipsę, dla n = 1 romb, a dla n < 1 krzywą wklęsłą. F jest określona na całej płaszczyźnie.
Parametry a, b i n są dodatnie, a środek ma skończone współrzędne. Dzięki wartościom bezwzględnym F jest określona na całej płaszczyźnie także dla niecałkowitego n.
CDefinicja w Pythonie
def F(x, y, a=4, b=3, n=3, x0=0, y0=0):
return abs((x - x0) / a) ** n + abs((y - y0) / b) ** n - 1
print(round(F(4, 0), 6))
rysuj_2(F)
DKrótki zapis lambda
Ten zapis dotyczy domyślnych parametrów.
rysuj_2(lambda x, y: abs((x - 0) / 4) ** 3 + abs((y - 0) / 3) ** 3 - 1)
Spróbuj sam
Wypróbuj n=0.5. Czy obszar otoczony krzywą nadal jest wypukły? Połącz w myśli dwa punkty jego wnętrza.