Matematyka 2D
Trójkąt równoboczny
Trójkąt ma trzy równe boki i trzy kąty po 60°. Rysowany jest jego obwód, z jednym wierzchołkiem skierowanym w górę. Zmieniaj bok oraz środek ciężkości, aby porównywać rozmiar i położenie.
Pierwszy przykład
import ms2d
import math
F = ms2d.trojkat_rownoboczny()
print(round(F(0, -math.sqrt(3)), 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ń bok z 6 na 4. Wszystkie odległości od środka ciężkości do odpowiadających sobie punktów zmniejszą się w tej samej proporcji.
import ms2d
import math
F = ms2d.trojkat_rownoboczny(bok=4)
print(round(F(0, -math.sqrt(3)), 6))
rysuj_2(F)
Wynik w konsoli:
0.57735
Wysokość trójkąta wynosi √3 razy bok podzielone przez 2. Środek ciężkości dzieli wysokość w stosunku 2:1, dlatego górny i dolny skrajny punkt nie są jednakowo oddalone od y0.
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.trojkat_rownoboczny(bok=6, x0=0, y0=0)
bok=6- Pełna długość każdego boku.
x0=0- Współrzędna X środka ciężkości.
y0=0- Współrzędna Y środka ciężkości.
Parametry liczbowe muszą być skończonymi liczbami int lub float, bez wartości logicznych.
BRównanie, właściwości i dziedzina
Dodatni bok oznaczono jako b, a wysokość trójkąta jako t = √3·b/2. We wzorze X = x-x0 i Y = y-y0; (x0, y0) jest środkiem ciężkości, nie środkiem prostokąta otaczającego trójkąt.
Bok musi być dodatni, a położenie skończone. F jest określona na całej płaszczyźnie. Środek ciężkości nie jest środkiem prostokąta otaczającego trójkąt.
CDefinicja w Pythonie
import math
def F(x, y, bok=6, x0=0, y0=0):
t = math.sqrt(3) * bok / 2
X, Y = (x - x0, y - y0)
return max(-Y - t / 3, (math.sqrt(3) * X + Y - 2 * t / 3) / 2, (-math.sqrt(3) * X + Y - 2 * t / 3) / 2)
print(round(F(0, -math.sqrt(3)), 6))
rysuj_2(F)
Spróbuj sam
Oblicz współrzędne trzech wierzchołków dla boku 4 i środka (0,0). Który z nich leży najwyżej?