DEFINE Konturverfolgung LOCAL P0 LOCAL P1 LOCAL Pend LOCAL P LOCAL Pa LOCAL Pe LOCAL Px LOCAL Py LOCAL V0 LOCAL Suchradius LOCAL Fangradius LOCAL Suchwinkel LOCAL Suchzahl LOCAL Zaehler LOCAL Schleifenzahl LOCAL Pruefer LOCAL Test LET Suchradius 0.01 LET Fangradius 0.0085 LET Suchwinkel 60 LET Suchzahl ((360/Suchwinkel) - 1) LET Pruefer 0 LET Schleifenzahl 0 OPEN_OUTFILE 1 DEL_OLD 'TMP' CATCH VERTEX READ PNT 'Startpunkt antippen' P0 LET Pend P0 CATCH ELEM READ PNT 'Element antippen' P1 INQ_ELEM P1 LET Pa (INQ 101) LET Pe (INQ 102) LET V0 ((P1 - P0)/(LEN (P1 - P0))) IF (Pa=P0) LET P1 Pe LET Test 0 ELSE LET P1 Pa LET Test 1 END_IF LET Px P0 LET Py P1 WRITE_FILE 1 Px LOOP LET Zaehler 0 REPEAT LET Zaehler (Zaehler+1) LET V0 (ROT V0 (- Suchwinkel)) LET P (P1 - (V0*Suchradius)) CATCH NO_VIEWPORT_RANGE Fangradius INQ_ELEM P IF (INQ 403=LINE) LET Pa (INQ 101) LET Pe (INQ 102) IF (Pa=P1) LET P1 Pe LET P0 Pa ELSE LET P1 Pa LET P0 Pe END_IF WRITE_FILE 1 P0 LET V0 ((P1 - P0)/(LEN (P1 - P0))) END_IF IF (Zaehler>Suchzahl) LET Pruefer 1 END_IF UNTIL ((INQ 403=LINE) OR (Zaehler>Suchzahl)) EXIT_IF ((P1=Pend) OR (Pruefer=1)) LET Schleifenzahl (Schleifenzahl+1) END_LOOP CATCH NO_VIEWPORT_RANGE 0 CLOSE_FILE 1 EDIT_FILE 'TMP' END_DEFINE