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

75 lines
3.7 KiB
Plaintext
Raw 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
}