mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-11 22:45:39 +02:00
75 lines
3.7 KiB
Plaintext
75 lines
3.7 KiB
Plaintext
{\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
|
||
}
|
||
|