home *** CD-ROM | disk | FTP | other *** search
- (* -------------------------------------------- *)
- (* N-ECK-30.INC *)
- (* (C) TOOLBOX & Karl Schlessmann *)
- (* -------------------------------------------- *)
-
- { n-Eck-Umfang }
-
- FUNCTION n_eck_umfang(n: INTEGER;
- VAR punkte): REAL;
- CONST max = 4095;
- TYPE typ_wert = REAL;
- VAR k : INTEGER;
- umfang : typ_wert;
- punkt : ARRAY [1 .. max] OF
- RECORD
- x, y : typ_wert
- END ABSOLUTE punkte;
- BEGIN
- umfang := 0;
- IF (n < 2) OR (n > max) THEN n := 0;
- FOR k := 1 TO n DO
- WITH punkt [SUCC (k MOD n)] DO
- umfang := umfang +
- SQRT (SQR (x - punkt [k].x) +
- SQR (y - punkt [k].y));
- n_eck_umfang := umfang;
- END;
-
- { n-Eck-Inhalt }
-
- FUNCTION n_eck_inhalt(n: INTEGER;
- VAR punkte): REAL;
- CONST max = 4095;
- TYPE typ_wert = REAL;
- VAR k : INTEGER;
- inhalt : typ_wert;
- punkt : ARRAY [1 .. max] OF
- RECORD
- x, y : typ_wert
- END ABSOLUTE punkte;
- BEGIN
- inhalt := 0;
- IF (n < 2) OR (n > max) THEN n := 0;
- FOR k := 1 TO n DO
- WITH punkt [Succ(k MOD n)] DO
- inhalt := inhalt +
- (x + punkt [k].x) *
- (y - punkt [k].y);
- n_eck_inhalt := Abs(inhalt/2);
- END;
- (* -------------------------------------------- *)
- (* Ende von N-ECK-30.INC *)