2025-05-12 10:07:51 +03:00

75 lines
3.7 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{\rtf1\ansi\ansicpg1254\deff0\deflang1055{\fonttbl{\f0\froman\fprq2\fcharset162{\*\fname Times New Roman;}Times New Roman TUR;}{\f1\fmodern\fprq1\fcharset162{\*\fname Courier New;}Courier New TUR;}{\f2\fnil\fcharset162 Tahoma;}}
{\colortbl ;\red0\green0\blue0;\red0\green0\blue128;}
\viewkind4\uc1\pard\lang1031\f0\fs24 // *********Polygone erzeugen******************************\par
\par
\pard\tx0\cf1\lang2057\b\f1\fs20 var\b0\par
\cf2\i //variablen deklarieren\cf1\i0\par
count,x,z:Integer;\par
x1,y1,x2,y2,angle,rad:double;\par
\lang1031 handle1,handle,fcount:Integer;\par
selcount:Integer;\par
\cf2\i // funktion zur bestimmung des Winkelradiant\cf1\i0\par
\lang2057\b function\b0 winkel( rangle:Double):Double;\par
\b begin\b0\par
\tab result:= rangle* (pi/\cf2 180\cf1 );\par
\b end\b0 ;\par
\par
\lang1031\b begin\b0\par
\cf2\i // Wie lang sollen die Kanten sein\cf1\i0\par
x:=inputbox(\cf2 'Kantenl\'e4ne'\cf1 , \cf2 'Wie lang sollen die Kanten sein(in mm)'\cf1 ,\cf2 ''\cf1 );\par
\cf2\i // wieviel Kanten soll das Polygone haben\cf1\i0\par
count:=StrtoInt( inputbox(\cf2 'Anzahlder Ecken'\cf1 , \cf2 'Wieviel Ecken soll Ihr Polygone haben'\cf1 ,\cf2 ''\cf1 ));\par
\cf2\i // Drehwinkel f\'fcr die Kanten berechnen\cf1\i0\par
angle := (\cf2 360\cf1 /count)+\cf2 180\cf1 ;\par
\cf2\i // radianten bestimmen\cf1\i0\par
rad:= winkel(angle);\par
\cf2\i //Activen Layer bestimmen\cf1\i0\par
ActiveLayer := \cf2 0\cf1 ;\par
\cf2\i // alle Selektionen aufheben\cf1\i0\par
\cf2\i // man k\'f6nnte statt der null hier auch ActivLayer setzen\cf1\i0\par
\cf2\i // besser ist aber eine Variable statt propertys\cf1\i0\par
deselectall(\cf2 0\cf1 );\par
\cf2\i //1.LINIE zeichnen\cf1\i0\par
\cf2\i // ich habe die Anfangspunkte hier statisch gestzt\cf1\i0\par
\cf2\i // kann man nat\'fcrlich auch dynamisch setzten\cf1\i0\par
\lang2057 x2:= (x+\cf2 70\cf1 );\par
y2:=\cf2 10\cf1 ;\par
Line(\cf2 0\cf1 ,\cf2 70\cf1 ,\cf2 10\cf1 ,x2,y2,\cf2 1\cf1 ,pssolid,clblack,\cf2 0\cf1 ,true);\par
\lang1031 z:=\cf2 1\cf1 ;\par
\cf2\i //Hilfsvariable f\'fcr sp\'e4ter\cf1\i0\par
fcount:=figurecount;\par
\cf2\i //jetzt l\'e4uft die schleife \cf1\i0\par
\b while\b0 z < count \b do\b0\par
\b begin\b0 \par
\cf2\i //h\'e4ndle auf letzte Linie holen\cf1\i0\par
\tab \lang2057 handle1:= figuregethandle(figurecount-\cf2 1\cf1 );\par
\tab \cf2\i //Punkte auslesen \tab\tab\cf1\i0\par
x1:= figuregetpoint_x(handle1,\cf2 1\cf1 );\par
y1:= figuregetpoint_y(handle1,\cf2 1\cf1 );\par
x2:= figuregetpoint_x(handle1,\cf2 2\cf1 );\par
y2:= figuregetpoint_y(handle1,\cf2 2\cf1 );\par
\tab \cf2\lang1031\i // neue Linie zeichnen\cf1\i0\par
\tab \cf2\i // dabei ist Anfangs und Endpunkt vertauscht\tab\tab\tab\cf1\i0\par
\lang2057 handle:=Line(\cf2 0\cf1 ,x2,y2,x1,y1,\cf2 1\cf1 ,pssolid,clblack,\cf2 0\cf1 ,true);\par
\tab \cf2\lang1031\i // jetzt die Linie drehen mit dem oben berechneten radianten\tab\cf1\i0\par
\lang2057 figurerotatebypoint(handle,rad,x2,y2);\par
\tab \cf2\lang1031\i //ein refresh damit figurecount \cf1\i0\par
\tab \cf2\i //aktualisiert wird\tab\tab\cf1\i0\par
refresh;\par
\cf2\i //Z\'e4hler f\'fcr die Schleife\cf1\i0\par
z:=z+\cf2 1\cf1 ;\par
\b end\b0 ;\par
\cf2\i // alle selektierten Linien(alle neu erzeugetn\cf1\i0\par
\cf2\i // zu einer polyline und h\'e4ndle holen \cf1\i0\par
handle:=MakeSelectedLinesPolyline;\par
\cf2\i //nochmal refresh reine sicherheit\cf1\i0\par
refresh;\par
\cf2\i // und jetzt die polyline zu einem Polygone schlie\'dfen\cf1\i0\par
closeselectedpolyline;\par
\par
\cf2\i //neu zeichnen und fertig\cf1\i0\par
refresh;\par
\b end\b0 .\par
\pard\cf0\lang1055\f2\fs16\par
}