Wzór na polę wielokąta o N-kątach

Wielokąty (n>3). Okręgi. Inne figury płaskie. Zadania i twierdzenia z nimi związane. Geometria rzutowa na płaszczyżnie.
zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 19 paź 2007, o 19:14

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ść.

Awatar użytkownika
Szemek
Gość Specjalny
Gość Specjalny
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

Post autor: Szemek » 19 paź 2007, o 19:56

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| |}\)

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 19 paź 2007, o 20:01

@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)

Awatar użytkownika
DEXiu
Gość Specjalny
Gość Specjalny
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

Post autor: DEXiu » 19 paź 2007, o 20:44

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 )

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 19 paź 2007, o 21:36

@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:
download . yousendit . com / 56A0AF537E124B85
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).

EDIT
Widzę, że nikt nie jest w stanie mi pomóc ;D

Awatar użytkownika
Szemek
Gość Specjalny
Gość Specjalny
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

Post autor: Szemek » 20 paź 2007, o 09:20

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ć

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 20 paź 2007, o 09:37

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ć
download . yousendit . com / 56A0AF537E124B85
Kodu nie zamieszczę ;p Program masz do pobrania z linka powyżen (należy usunąć spacje i wkleić do przeglądarki).

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.

Awatar użytkownika
Szemek
Gość Specjalny
Gość Specjalny
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

Post autor: Szemek » 20 paź 2007, o 09:50

nie, to nie
przejrzyj to, co rzucam niżej
http://local.wasp.uwa.edu.au/~pbourke/g ... /polyarea/

tak przy okazji,
czasem google wystarczy, żeby coś znaleźć

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 20 paź 2007, o 13:11

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ą
Ostatnio zmieniony 20 paź 2007, o 13:53 przez zeus, łącznie zmieniany 1 raz.

Awatar użytkownika
Lorek
Gość Specjalny
Gość Specjalny
Posty: 7149
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

Post autor: Lorek » 20 paź 2007, o 13:49

zeus pisze:Co z tego wynika?
Złe zastosowanie wzoru. Dla kwadratu masz n=4:
\(\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)}\)

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 20 paź 2007, o 13:53

Dobrze, tylko 1/2 nie dopisałem w moim poście, a liczyłem z 1/2 xD

HMM...

@Down
Nom, N-1
Ostatnio zmieniony 20 paź 2007, o 13:59 przez zeus, łącznie zmieniany 3 razy.

Awatar użytkownika
Lorek
Gość Specjalny
Gość Specjalny
Posty: 7149
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

Post autor: Lorek » 20 paź 2007, o 13:54

Ale jedna suma za mało, porównaj!

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 20 paź 2007, o 14:00

Lorek pisze:
zeus pisze:Co z tego wynika?
Złe zastosowanie wzoru. Dla kwadratu masz n=4:
\(\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)}\)
Jeżeli od i=0 do 3 to nie powinno być:
\(\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}\)

Awatar użytkownika
Lorek
Gość Specjalny
Gość Specjalny
Posty: 7149
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

Post autor: Lorek » 20 paź 2007, o 14:03

No i jest. Na tej stronie jest napisane:
The last vertex (xN,yN) is assumed to be the same as the first,
Czyli \(\displaystyle{ (x_4;y_4)=(x_0;y_0)}\)

[ Dodano: 20 Października 2007, 14:03 ]
zeus pisze:wziąśc
wziąć

zeus
Użytkownik
Użytkownik
Posty: 12
Rejestracja: 19 paź 2007, o 19:03
Płeć: Mężczyzna
Lokalizacja: Opole

Wzór na polę wielokąta o N-kątach

Post autor: zeus » 20 paź 2007, o 14:17

Lorek pisze:No i jest. Na tej stronie jest napisane:
The last vertex (xN,yN) is assumed to be the same as the first,
Czyli \(\displaystyle{ (x_4;y_4)=(x_0;y_0)}\)

[ Dodano: 20 Października 2007, 14:03 ]
zeus pisze:wziąśc
wziąć
Wystarczyło przeczytać komentarz znajdujący się na górze...

Dzięki, temat do zamknięcia

ODPOWIEDZ