Matematyka 2D
Kardioida
Kardioida ma jedno ostrze i jedną oś symetrii. W tej bibliotece wybrzuszenie jest skierowane w prawo. Zmieniaj a oraz położenie ostrza, aby skalować i przesuwać krzywą.
Pierwszy przykład
import ms2d
F = ms2d.kardioida()
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
Zmień a z 2 na 3. Ostrze pozostanie w tym samym miejscu, a wybrzuszenie powiększy się.
import ms2d
F = ms2d.kardioida(a=3)
print(round(F(4, 0), 6))
rysuj_2(F)
Wynik w konsoli:
-0.888889
W kierunku dodatnich X odległość od ostrza wynosi 2a. W kierunku przeciwnym wynosi zero. Symetria dotyczy poziomej prostej przechodzącej przez ostrze, a nie obu osi.
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.kardioida(a=2, x0=0, y0=0)
a=2- Dodatnia skala krzywej.
x0=0- Współrzędna X ostrza.
y0=0- Współrzędna Y ostrza.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Wzór biegunowy korzysta z odległości r od ostrza i kąta θ względem dodatniego kierunku X. Wymagane jest a > 0, a ostrze leży w (x0, y0). Równanie opisuje ten sam poziom zero co funkcja biblioteki.
Parametr a jest dodatni, a położenie skończone. Funkcja pomocnicza jest określona na całej płaszczyźnie, ale równanie biegunowe opisuje odległość od ostrza i kierunek punktu.
CDefinicja w Pythonie
import math
def F(x, y, a=2, x0=0, y0=0):
X, Y = ((x - x0) / a, (y - y0) / a)
r = math.hypot(X, Y)
return r * r - X - r
print(round(F(4, 0), 6))
rysuj_2(F)
Spróbuj sam
Przenieś ostrze do (-1,2). Wyznacz najdalszy punkt w prawo i porównaj odległości w kierunkach górnym oraz dolnym.