Witam,
Mam np zbiór punktów, które tworzą zamkniętą figurę. Jak policzyć powierzchnie ograniczoną przez obwód wyznaczony przez wierzchołki ?
Witam,
Mam np zbiór punktów, które tworzą zamkniętą figurę. Jak policzyć powierzchnie ograniczoną przez obwód wyznaczony przez wierzchołki ?
Podzielić na trójkąty i zastosować wzór Herona dla każdego z nich.
tak jak szczawik mowi uzyj triangulyzacji, po prostu polacz punkty siatki a co do wzrou to lepszy i szybszy jest ten: 0.5 * |det(AB, AC)| bo mozesz wtedy Od razu policzyc cale pole powierzchni bryly i podzielic wynik przez 2 :P
wiecej na wiki: http://pl.wikipedia.org/wiki/Tr%C3%B3jk%C4%85t
Jakoś przed chwilą znalazłem coś o metodzie Gaussa wykorzystywanej w geodezji lub zamieniając na współrzędne biegunowe.
Chodzi o to żeby metoda była prosta obliczeniowa dla dużej ilości punktów
no to trójkąty =] trzy kolejne punkty jak połączysz dadzą trójkąt =]
albo mnie wyobraźnia zawodzi albo czegoś nie rozumiem. Z tego co twierdzić jeżeli będę miał okrąg ( nieskończona ilość wierzchołków oddalonych od środka o r) to pole będzie hmm grubszym obwodem
Masz zbiór punktów, czy uporządkowany ciąg punktów ? Jeśli zbiór, to zadanie jest nierozwiązalne - pole figury zależy od kolejności w jakiej połączysz punkty. Rozważ cztery punkty leżące w wierzchołkach kwadratu, możesz je połączyć wzdłuż boków, możesz rozpocząć rysowanie obwodu od przekątnej.
pozdrawiam
@BugsBunny: trojkaty maja wypelniac powierzchnie wielokata.W przypadku wypuklych figur (jak okrag wlasnie) latwo to uzyskac laczac 2 kolejne punkty ze 'srodkiem' figury. W przypadku okregu otrzymasz nieskonczenie wiele trojkatow o nieskonczenie malym polu z jedym wierzcholkiem w srodku figury. Oczywiscie moze to byc tez dowolnie inny punkt wspolny. W przypadku wkleslych figur trzeba by najpierw podzielic je na wypukle.
w każdym razie zasada trókątowania działa =D
myślę, że ta metoda będzie lepsza
http://pl.wikipedia.org/wiki/Metoda_analityczna_obliczania_p%C3%B3l
co do wyboru pkt środkowego to może być problem jeżeli będą duże amplitudy obwodu (gęsto poszarpany). Może wtedy zdarzyć sytuacja, że odcinek łączący środek z jednym z dwóch pkt'ów przetnie linie obwodu
BugsBunny napisał(a)
Może wtedy zdarzyć sytuacja, że odcinek łączący środek z jednym z dwóch pkt'ów przetnie linie obwodu
Nazywa sie to wtedy figura wklesla.
to też jest figura "otoczona" obwodem, nie jest jasne co należy do figury i które punkty są w środku,
jak nie jak tak =D na rysunku jest wielokąt z zaznaczonymi paroma przekątnymi =D ( a na serwerze plik nazywa się łamana więc celem tego rysunku raczej nie było rysowanie wielokątu tylko łamanej zamkniętej )
=D
@Potwoor (spełniłem twoją prośbę i usunąłem _), w pytaniu nie mowy o wielokącie. Pytanie dotyczy zbioru punktów, zmieniłem zbiór na ciąg bo dla zbioru pytanie o pole figury ograniczonej przez obwód wyznaczony przez te punkty nie ma żadnego sensu.
Chodzi o to że metodą trójkątów nie wszystko mogę policzyć (przykład wyżej). Metoda Gaussa natomiast nie ma takich ograniczeń
Wyniki uzyskane metodą Gaussa zastosowana do obszaru, którego brzegiem jest łamana z samoprzecięciami dadzą nieoczekiwane wyniki. Dla łamanej o kolejnych wierzchołkach (0,0) (1,0) (0,1) (1,1)
(0,0) wynik jest zero. Wynika to stąd, że ta łamana otacza zbiór będący sumą dwóch trójkątów:
[(0,0) (1,0) (1/2,1/2)] oraz [(0,1) (1,1) (1/2,1/2)}], a przy wędrowaniu wzdłuż łamanej jeden z trójkątów leży po lewej stronie, drugi po prawej.
BTW, metoda Gaussa jest szczególnym przypadkiem tzw. tw. Greena: jeżeli dana jest krzywa fi (bez samoprzecięć) otaczająca obszar U, to pole(U) = (1/2)*całka krzywoliniowa wzdłuż (obieganej w kierunku dodatnim - przeciwnym do ruchu wskazówek zegara) krzywej fi z formy różniczkowej xdy-ydx. Jeśli krzywa fi jest wielokątem (niekoniecznie wypukłym) dostajemy wzór Gaussa.
ale będę tak preparował dane, że przecięcia nie wystąpią chodzi tylko o wklesły wypukły
dlatego jak napisal johny trzeba wtedy podzieilc figure na wielokaty wypukle i nie ma prawa zdarzyc sie przeciecie lini z obwodem figury
Ale po co dzielić ? Wzór Gaussa można stosować znając tylko współrzędne wierzchołków.
bogdans napisał(a)
Ale po co dzielić ? Wzór Gaussa można stosować znając tylko współrzędne wierzchołków.
otóż to. Dlatego pisałem, że metoda ta jest korzystniejsza obliczeniowo. Wystarczy podstawić wierzchołki