% 4.5.1: Eine durch einen Polygonzug begrenzte ebene Fläche
% Beispiel: Ermittlung der Flächeninhalte und Schwerpunktkoordinaten
% Author:   Eugen Lass
% Revision: Prof. Dr. Thomas Frischgesell 
% Datum:    17.04.2003

clear all

% Gegeben
n = 19;                      % Anzahl der Punkte (denn Startpunkt doppelt)
x = zeros(n,1);              % Vektoren auf null setzen
y = zeros(n,1);
A = 0;                       % Fläche am Anfang
Sx = 0;                      % Anfangswerte für statische Momente
Sy = 0;

% Koordinaten für die einzelnen Punkte (Startpunkt vorne und am Ende)
x = [12; 0; 5; 7; 17; 19; 24; 12; 12; 15; 9; 12; 12; 27; 27; 31; 31; 27; 12]; 
y = [24; 0; 0; 4; 4;  0;  0;  24; 14; 8;  8; 14; 24; 24; 0;  0;  24; 24; 24];

for i=1:n-1
    
    %Berechnung der Flächen
    A(i) = ( x(i) * y(i+1) - x(i+1) * y(i)) / 2; 
    
    %Berechnung der statischen Momente
    Sx(i) = ( x(i) * y(i+1) - x(i+1) * y(i)) * (y(i) + y(i+1)) / 6;
    Sy(i) = ( x(i) * y(i+1) - x(i+1) * y(i)) * (x(i) + x(i+1)) / 6;
end

% Gesamtfläche
Ages = sum(A);
% Gesamtmomente
Sxges = sum(Sx);
Syges = sum(Sy);


% Berechnung der Schwerpunktkoordinaten

xS = Syges / Ages;

yS = Sxges / Ages;

% Grafische Ausgabe der untersuchten Fläche
clf;
fill(x,y,'r')

format compact
sprintf('Die Fläche beträgt %6.2f',Ages)
sprintf('Die Schwerpunktskoordinate x beträgt %6.2f',xS)
sprintf('Die Schwerpunktskoordinate y beträgt %6.2f',yS)
