Wzór na polę wielokąta o N-kątach
Wzór na polę wielokąta o N-kątach
Chciałbym się dowiedzieć jaki jest wzór na pole dowolnego wielokąta o n-kątach leżącego w układzie współrzędnych mając dane punkty jego wierzchołków, oraz znając ich kolejność.
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
Wzór na polę wielokąta o N-kątach
Mając dany wielokąt można go 'pociąć' na trójkąty i wyliczyć pola poszczególnych trójkątów
dla
\(\displaystyle{ A=(x_a,y_a),B=(x_b,y_b),C=(x_c,y_c)}\)
\(\displaystyle{ P_{\Delta ABC}=\frac{1}{2}|d(\vec{AB},\vec{AC})|=\frac{1}{2}| \left|\begin{array}{cc}x_b-x_a&y_b-y_a\\x_c-x_a&y_c-y_a\end{array}\right| |}\)
dla
\(\displaystyle{ A=(x_a,y_a),B=(x_b,y_b),C=(x_c,y_c)}\)
\(\displaystyle{ P_{\Delta ABC}=\frac{1}{2}|d(\vec{AB},\vec{AC})|=\frac{1}{2}| \left|\begin{array}{cc}x_b-x_a&y_b-y_a\\x_c-x_a&y_c-y_a\end{array}\right| |}\)
Wzór na polę wielokąta o N-kątach
@Up
Chyba mnie nie zrozumiałeś Chodzi mi o wzór, który mógłbym zastosować do policzenia pola dowolnego wielokąta (np. figury składającej się z 200 wierzchołków)
Chyba mnie nie zrozumiałeś Chodzi mi o wzór, który mógłbym zastosować do policzenia pola dowolnego wielokąta (np. figury składającej się z 200 wierzchołków)
- DEXiu
- Użytkownik
- Posty: 1174
- Rejestracja: 17 lut 2005, o 17:22
- Płeć: Mężczyzna
- Lokalizacja: Jaworzno
- Pomógł: 69 razy
Wzór na polę wielokąta o N-kątach
Ale nie ma nigdzie wspomniane, że nie można tego n-kąta rozdzielić sobie na n trójkątów, a pola tych już łatwo policzyć ze wzoru podanego przez Szemeka Wzoru na dowolny wielokąt raczej nie znajdziesz. Nasuwa mi się jedynie wzór Picka, ale on jest tylko dla szczególnego przypadku (tzn. gdy wielokąt ma wierzchołki o współrzędnych całkowitych) i jest dość niepraktyczny, bo liczyć trzebaby mniej więcej tyle samo (o ile nie więcej) co w przypadku podziału na trójkąty (sprawdzenie ile punktów kratowych leży wewnątrz i na krawędziach - życzę powodzenia )
Wzór na polę wielokąta o N-kątach
@Up
A mi się zdaje że jest. Musi być jakiś algrytm na podstawie którego można wyprowadzić wzór na pole dowolnego wielokąta leżącego w dowolnym miejscu w układzie współrzędnych. Potrzebuję tego wzoru do porównania z tym, który wyprowadziłem (jeżeli można nazwać to wyprowadzeniem) i użyłem w programie liczącym pole dowolnego wielokąta (testowany na 3/4/5/6/10/20-stokątach)
Link poniżej:
EDIT
Widzę, że nikt nie jest w stanie mi pomóc ;D
A mi się zdaje że jest. Musi być jakiś algrytm na podstawie którego można wyprowadzić wzór na pole dowolnego wielokąta leżącego w dowolnym miejscu w układzie współrzędnych. Potrzebuję tego wzoru do porównania z tym, który wyprowadziłem (jeżeli można nazwać to wyprowadzeniem) i użyłem w programie liczącym pole dowolnego wielokąta (testowany na 3/4/5/6/10/20-stokątach)
Link poniżej:
Należy podać ilość wierzchołków wielokąta, następnie je wprowadzić w kolejności (np idąc od prawej, bądź też od lewej).download . yousendit . com / 56A0AF537E124B85
EDIT
Widzę, że nikt nie jest w stanie mi pomóc ;D
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
Wzór na polę wielokąta o N-kątach
Jeśli sam napisałeś program czy mógłbyś zamieścić tutaj jego kod źródłowy ?
DEXiu, ale jakby mieć liczby wymierne ze skończonym rozwinięciem dziesiętnym (możliwie krótkim) i dokonać jednokładności z odpowiednią skalą to wzór Picka też można zastosować
DEXiu, ale jakby mieć liczby wymierne ze skończonym rozwinięciem dziesiętnym (możliwie krótkim) i dokonać jednokładności z odpowiednią skalą to wzór Picka też można zastosować
Wzór na polę wielokąta o N-kątach
Szemek pisze:Jeśli sam napisałeś program czy mógłbyś zamieścić tutaj jego kod źródłowy ?
DEXiu, ale jakby mieć liczby wymierne ze skończonym rozwinięciem dziesiętnym (możliwie krótkim) i dokonać jednokładności z odpowiednią skalą to wzór Picka też można zastosować
Kodu nie zamieszczę ;p Program masz do pobrania z linka powyżen (należy usunąć spacje i wkleić do przeglądarki).download . yousendit . com / 56A0AF537E124B85
I nie stosuję w nim Wzoru Picka. Wystarczy podać liczbę wierzchołków wielokąta, a następnie je podać w kolejności od prawej do lewej bądź też od lewej do prawej.
@Down
Dzięki
Mi polskie google nie pomogło ;(
Ostatnio zmieniony 20 paź 2007, o 10:05 przez zeus, łącznie zmieniany 2 razy.
Wzór na polę wielokąta o N-kątach
W/G wzoru z linka:
Pole kwadratu: \(\displaystyle{ P_k=\frac{(x_0 y_1 - x_1 y_0)+(x_1 y_2 - x_2 y_1)+(x_2 y_3 - x_3 y_2)}{2}}\)
Przyjmijmy, że kwadrat leży w pierwszej ćwiartce i ma wierzchołki w punktach: \(\displaystyle{ (0;0) (2;0) (2;2) (0;2)}\)
Liczymy w stronę odwrotną do wskazówek zegara(w prawo)
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Liczymy w stronę wskazówek zegara (w lewo)
Teraz to samo, ale według wskazówek zegara:
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;0)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;2)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc zły wynik.
Co z tego wynika?
Że nie można liczyć z dowolnego punktu i w dowolną stronę
A program napisany na podstawie mojego wzoru działa z dowolnego punktu i w dowolną stronę
Jeżeli popełniłem gdzieś błąd to mnie poprawcie, mylić się rzeczą ludzką
Pole kwadratu: \(\displaystyle{ P_k=\frac{(x_0 y_1 - x_1 y_0)+(x_1 y_2 - x_2 y_1)+(x_2 y_3 - x_3 y_2)}{2}}\)
Przyjmijmy, że kwadrat leży w pierwszej ćwiartce i ma wierzchołki w punktach: \(\displaystyle{ (0;0) (2;0) (2;2) (0;2)}\)
Liczymy w stronę odwrotną do wskazówek zegara(w prawo)
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Liczymy w stronę wskazówek zegara (w lewo)
Teraz to samo, ale według wskazówek zegara:
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;0)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;0)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc dobry wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(2;2)}\) wychodzi nam \(\displaystyle{ S=2}\) a więc zły wynik.
Przyjmijmy, że liczymy od punktu \(\displaystyle{ P_0=(0;2)}\) wychodzi nam \(\displaystyle{ S=4}\) a więc zły wynik.
Co z tego wynika?
Że nie można liczyć z dowolnego punktu i w dowolną stronę
A program napisany na podstawie mojego wzoru działa z dowolnego punktu i w dowolną stronę
Jeżeli popełniłem gdzieś błąd to mnie poprawcie, mylić się rzeczą ludzką
Ostatnio zmieniony 20 paź 2007, o 13:53 przez zeus, łącznie zmieniany 1 raz.
- Lorek
- Użytkownik
- Posty: 7150
- Rejestracja: 2 sty 2006, o 22:17
- Płeć: Mężczyzna
- Lokalizacja: Ruda Śląska
- Podziękował: 1 raz
- Pomógł: 1322 razy
Wzór na polę wielokąta o N-kątach
Złe zastosowanie wzoru. Dla kwadratu masz n=4:zeus pisze:Co z tego wynika?
\(\displaystyle{ S=\frac{1}{2}\sum_{i=0}^{3} (x_iy_{i+1}-x_{i+1}y_i)=\\=\frac{1}{2}(x_0y_1-x_1y_0+x_1y_2-x_2y_1+x_2y_3- x_3y_2+x_3y_0-x_0y_3)}\)
Wzór na polę wielokąta o N-kątach
Dobrze, tylko 1/2 nie dopisałem w moim poście, a liczyłem z 1/2 xD
HMM...
@Down
Nom, N-1
HMM...
@Down
Nom, N-1
Ostatnio zmieniony 20 paź 2007, o 13:59 przez zeus, łącznie zmieniany 3 razy.
Wzór na polę wielokąta o N-kątach
Jeżeli od i=0 do 3 to nie powinno być:Lorek pisze:Złe zastosowanie wzoru. Dla kwadratu masz n=4:zeus pisze:Co z tego wynika?
\(\displaystyle{ S=\frac{1}{2}\sum_{i=0}^{3} (x_iy_{i+1}-x_{i+1}y_i)=\\=\frac{1}{2}(x_0y_1-x_1y_0+x_1y_2-x_2y_1+x_2y_3- x_3y_2+x_3y_0-x_0y_3)}\)
\(\displaystyle{ S=\frac{1}{2}\sum_{i=0}^{3} (x_iy_{i+1}-x_{i+1}y_i)=\\=\frac{1}{2}(x_0y_1-x_1y_0+x_1y_2-x_2y_1+x_2y_3-x_3y_2+x_3y_4-x_4y_3)}\)
I wtedy wkrada się błąd, bo skąd wziąśc \(\displaystyle{ X_4;Y_4}\)
- Lorek
- Użytkownik
- Posty: 7150
- Rejestracja: 2 sty 2006, o 22:17
- Płeć: Mężczyzna
- Lokalizacja: Ruda Śląska
- Podziękował: 1 raz
- Pomógł: 1322 razy
Wzór na polę wielokąta o N-kątach
No i jest. Na tej stronie jest napisane:
[ Dodano: 20 Października 2007, 14:03 ]
Czyli \(\displaystyle{ (x_4;y_4)=(x_0;y_0)}\)The last vertex (xN,yN) is assumed to be the same as the first,
[ Dodano: 20 Października 2007, 14:03 ]
wziąćzeus pisze:wziąśc
Wzór na polę wielokąta o N-kątach
Wystarczyło przeczytać komentarz znajdujący się na górze...Lorek pisze:No i jest. Na tej stronie jest napisane:Czyli \(\displaystyle{ (x_4;y_4)=(x_0;y_0)}\)The last vertex (xN,yN) is assumed to be the same as the first,
[ Dodano: 20 Października 2007, 14:03 ]wziąćzeus pisze:wziąśc
Dzięki, temat do zamknięcia