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
t=3b2max(-Y-t3,3X+Y-2t32,-3X+Y-2t32)=0

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?

Dokładność, obszar obliczeń i ograniczenia środowiska