pole wieloboku

Dany jest wielobok n-wierzchołkowy, tzn. dane są współrzędne (x,y) kolejnych jego wierzchołków. Krawędzie wieloboku nie przecinają się.

Napisz progran, który wczyta z pliku liczbę wierzchołków i współrzędne kolejnych wierzchołków

oraz obliczy pole powierzchni tego wieloboku.

Rozwiązanie

Zbuduj trapezy prostokątne, oparte wysokością na osi X. Bok ukośny każdego trapezu będzie bokiem danego wieloboku, a podstawy każdego trapezu będą równe współrzędnym pionowym dwóch wierzchołków wyznaczających bok ukośny. (Można oczywiście odwrócić role osi X i Y)

Należy wybrać kierunek obejścia wieloboku i zsumować pola wszystkich kolejnych trapezów, wyznaczonych wierzchołkami: od i do i+1.

Przykład: pole trapezu wyznaczonego przez wierzchołki 1-2 będzie równe:

$t = \ \frac{(y2 + y1)}{2}*(x2 - x1)$

Idąc na rysunku w kolejności: 1-2-3-4-1 otrzymamy:

Jeśli pole wieloboku wyjdzie ujemne, to znaczy tylko, że wybraliśmy „zły” kierunek obejścia wieloboku. Wówczas trzeba wziąć wartość bezwzględną wyniku.

int xp,yp,x,y; // wspołrzędne wierzchołka bieżącego i poprzedniego

int pole=0; // pole całego wieloboku

int trapez; // pole pojedynczego trapezu

int n; // liczba wierzchołków

ifstream we("wiel3.txt");

we>>n;

we>>xp>>yp; // czytaj pierwszy wierzchołek

int x1=xp, y1=yp; // zapamiętaj pierwszy wierzchołek

for (int i=2; i<=n; i++) {

we>>x>>y; // czytaj dane kolejnego wierzchołka

trapez = (y+yp)*(x-xp) // pole trapezu zbudowanego na wierzchołku bieżącym i poprzednim

pole += trapez;

xp=x; // wierzchołek bieżący w następnym kroku stanie się wierzchołkiem poprzednim

yp=y;

}

trapez = (y1+yp)*(x1-xp); // pole ostatniego trapezu, od 1 do n

pole += trapez;

cout<<"pole = "<<pole/2.0<<endl;

Przykładowe dane:

8

4 15 6 16 12 19 17 16 18 15 19 6 19 0 0 0

Wynik: 279.5


Wyszukiwarka

Podobne podstrony:
zlewnia metoda wieloboku Model
5 Pole magn
Betlejemskie Pole
pole morficzne
09 Pole elektryczneid 7817 (2)
Pole powierzchni i objętości brył kl3 gimn, sprawdziany, Sprawdziany Matematyka
Pole Magnetyczne Ziemi
1 Pole elektrostatyczne
,fizyka2,Pole magnetyczne
Fizykoterapia wykład (pole magnetyczne)
pole elektromagnetyczne
A19 Pole magnetyczne w prozni (01 07) (2)
pole grawitacyjne teoria0001
GW Pole normalne scZ
24. Pole grawitacyjne, Fizyka - Lekcje
Pole powierzchni i objetość brył - scenariusz III g, Matematyka dla Szkoły Podstawowej, Gimnazjum
Pole elektryczne, SZKOŁA
A15 Pole elektryczne w dielektrykach (01 08)

więcej podobnych podstron