Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Obliczenie trapezu wpisanego w odcinek koła
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Ma ktoś pojęcie, jak obliczyć odcinki trapezu wpisanego w odcinek koła? Chodzi o odcinki a i b, przyjmując, że l i alfa może być zmienna (zmienne to oczywiście nie problem).

r = 155mm (odległość od środka do a
Formularz sam sobie sklecę...
Posio
Może podaj najpierw jakieś wzory etc. nie wszyscy tu są matematykami.... Podaj wzory na to co potrzebujesz w matmie to poskładmy kod smile.gif
mortus
@Posio: Koledze właśnie o wzory chodzi, a nie o kod.

Na razie nic mi do głowy nie przyszło, czy wszystkie dane podałeś? I jeszcze który to jest ten odcinek l? Od środka okręgu do punktu przecięcia promienia z odcinkiem b?
Kshyhoo
"l" to jeden z boków trapezu. W miarą, jak się odsuwają boki a i b, l zwiększa swój wymiar...
sh3d2
Nie mozesz tego obliczyc, nie znajac odleglosci od srodka.
Bo jak sam zauwazyles, "odsuwajac" trapez od srodka, kat ani L sie nie zmieni, natomiast a i b tak, dzieki czemu mozesz utworzyc nieskonczenie wiele takich trapezow dla danego L i alfa.
musisz znac chociaz jakis stosunek L do odleglosci trapezu od srodka (czyli de facto ta odleglosc)
Kshyhoo
Racja. Promień do a = 155mm.
prowseed
nie wiem jak beda wygladaly wariacje tego, ale skoro chodzi o trapez, to nie potrzebny Ci wycinek kola, a trojkat. A pozniej juz tylko z najbanalniejszego podobienstwa trojkatow wyliczasz.

//EDIT
pole do 1 pktu liczysz 1/2 *r^2 *sin(alfa)
pole do 2 pktu 1/2 *(r+(l/cos(alfa/2)))^2 * sin(alfa)
Odejmujesz 1 od 2 i gotowe
Nie wiem czy nie namieszalem przy wzorach;]

//EDIT2
namieszalem ; ]
nie wiem dlaczego wyskoczyłem z tymi polami, ale generalnie sh3d2 podał rozwiązanie : )
sh3d2
teraz lepiej.
podziel sobie ten trojkat (srodek->odcinek a) na pol, dostaniesz dwa trojkaty prostokatne:
- kat ostry = alfa/2
- krotsza przyprostokatna a/2 (nazwijmy ja A)
- przeciwprostokatna = podana dlugosc od srodka do a (nazwijmy ja C)

wiec sin alfa/2 = A/C

sin znasz (bo znasz kat), C znasz.

wiec sin (alfa/2) * C = A

tak samo dla drugiego (dluzszego) trojkata, tym razem dodajac do C dlugosc L.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.