Matematyka 2D
Elipsa
Elipsa ma dwie prostopadłe osie symetrii. Długości a i b wyznaczają jej rozciągnięcie w dwóch kierunkach. Gdy a = b, otrzymujemy okrąg.
Pierwszy przykład
import ms2d
F = ms2d.elipsa()
print(round(F(5, 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
Zmień a z 5 na 3, pozostawiając b=3. Obie półosie staną się równe i otrzymasz okrąg.
import ms2d
F = ms2d.elipsa(a=3)
print(round(F(5, 0), 6))
rysuj_2(F)
Wynik w konsoli:
0.666667
Przy wartościach domyślnych skrajne punkty leżą w odległościach 5 i 3 od środka na odpowiednich osiach. Nie jest to rozciągnięcie obrazu w przeglądarce, tylko zmiana równania.
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.elipsa(a=5, b=3, x0=0, y0=0)
a=5- Półoś w kierunku X.
b=3- Półoś w kierunku Y.
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
Dodatnie a i b są półosiami wzdłuż X i Y, a środek to (x0, y0). Funkcja pomocnicza F jest określona dla każdej pary liczb rzeczywistych; poniżej podano równanie krzywej.
Wymagane są a>0 i b>0. Środek ma dowolne skończone współrzędne. F jest określona na całej płaszczyźnie, ale tylko jej zera należą do elipsy.
CDefinicja w Pythonie
import math
def F(x, y, a=5, b=3, x0=0, y0=0):
return math.hypot((x - x0) / a, (y - y0) / b) - 1
print(round(F(5, 0), 6))
rysuj_2(F)
DKrótki zapis lambda
Ten zapis dotyczy domyślnych parametrów.
import math
rysuj_2(lambda x, y: math.hypot((x - 0) / 5, (y - 0) / 3) - 1)
Spróbuj sam
Przesuń środek do (1,-2). Sprawdź współrzędne czterech skrajnych punktów bez uruchamiania programu.