Skip to content

Polyline (Polylinie)

Die Funktion Polylinie wird verwendet, um Polylinien zu erstellen, die aus geraden Liniensegmenten und Bogensegmenten bestehen.

Format:

Polyline();

Definiert die Argumenteliste, durch Kommata getrennt. Argumente definieren die individuellen Segmente einer Polylinie.

Ein Liniensegment wird durch 2 Punkte definiert.

Ein Bogensegment wird durch eine Abrundungsfunktion oder durch eine Funktion Arc0 oder Arc1 und zwei Punkten an den Enden des Bogens definiert.

Für Polylinien, die nur aus geraden Liniensegmenten bestehen, enthält die nur 2D-Punkte, die über die Funktion Point(x,y) definiert werden.

Format:

Point(,)

Definiert die X-Koordinate des Punkts
Definiert die Y-Koordinate des Punkts

Ein Rechteck kann beispielsweise wie folgt definiert werden:

recht = Polyline( // Kein Zeilenende

Point(0,0), // diese Funktion befindet sich auf mehreren Zeilen

Point(B, 0),

Point(B, H),

Point(0, H),

Point(0, 0) );

Es sollte noch angemerkt werden, dass es sich um eine geschlossene Polylinie handelt, falls die Anfangs- und Endpunkte deckungsgleich sind. Dieser Polylinientyp ist auf einen bestimmten Bereich begrenzt und kann für die Erstellung von 3D-Objekten verwendet werden.

Polylinien mit Bogensegmenten werden durch das Hinzufügen der Hilfsfunktionen Arc0 und Arc1 in der Argumenteliste definiert. Arc0 baut den kreisförmigen Bogen im Uhrzeigersinn auf, während Arc1 den kreisförmigen Bogen entgegen den Uhrzeigersinn aufbaut.

Format:

Arc0(,),

Arc1(,),

Definiert die X-Koordinate des Bogenmittelpunkts
Definiert die Y-Koordinate des Bogenmittelpunkts

Anfangs- und Endpunkte eines Bogens werden durch die vorhergehend und nachfolgend genannten Argumente definiert.

Arc0 und Arc1 können das erste oder letzte Argument in der Argumenteliste darstellen. Für eine Polylinie, die nur ein Bogensegment enthält, besteht die aus zwei durch die Funktion Point(x,y) definierten Punkten und aus einem Bogen, der entweder durch die Funktion Arc0 oder durch Arc1 definiert wird.

Beispiel für Bögen in einer Polylinie:

//Polyarc.ppm - Polylinie mit Bögen

YGroesse=5;

XGroesse=6;

R = 1;

Pfad = Polyline(Point(0, R), // Beginn an Oberseite der abgerundeten unteren linken Ecke

Point(0, YGroesse-R), // gehe zur Unterseite der abgerundten oberen linken Ecke

Arc1(0, YGroesse, R), // aus dieser Ecke einen "Ausschnitt" machen

Point(R, YGroesse), // linke Seite der oberen Kanten

Point(XGroesse-R, YGroesse),

Arc0(XGroesse-R, YGroesse-R, R), // aus dieser Ecke eine "Abrundung" machen

Point(XGroesse, YGroesse-R),

Point(XGroesse, R),

Arc0(XGroesse-R, R, R), // weitere Abrundung

Point(XGroesse-R, 0),

Point(R, 0),

Arc1(0, 0, R), // weiterer Ausschnitt

Point(0, R));

Output(Pfad);

Eine weitere Methode für das Erstellen eines Bogens innerhalb einer Polylinie ist es, die Hilfsfunktion Fillet zu verwenden. Diese Funktion "glättet" zwei lineare Segmente, die am vorhergehenden Punkt beginnen und enden, indem an einer Ecke ein Bogen mit einem bestimmten Radius eingefügt wird. Dies gewährleistet glatte Übergangspunkte.

Format:

Fillet();

Definiert den Radius der Abrundung.

Beispiel für Abrundungen in einer Polylinie:

// polyfillet.ppm - Polylinie mit Abrundungen

H = 5;

L = 10;

FR = 1;

p2 = Polyline( // Rechteck mit abgerundeten Ecken

Point(0,0), // untere linke Ecke

Point(L,0), // untere rechte Ecke

Fillet(FR), // platziert Abrundung unten rechts

Point(L,H), // obere rechte Ecke

Fillet(FR), // platziert Abrundung oben rechts

Point(0,H), // obere linke Ecke

Fillet(FR), // platziert Abrundung oben links

Point(0,0), // schließt das Rechteck

Fillet(FR) // Anfangs-/Endecke der Abrundung

// Da es sich um eine geschlossene Form handelt wird nachfolgend keine Point-Funktion benötigt

);

Output(p2);

Abrundungen und Bögen können innerhalb der Funktion Polyline auch zusammen verwendet werden.

Beispiel für Bögen und einer Abrundung in einer Polylinie:

Poly1 = Polyline( // Rechteck mit abgerundeten Ecken

Point(0, 0),

Point(B - r, 0), Arc1(B - r, r), Point(B, r),

Point(B, H - r), Arc1(B - r, H - r), Point(B - r ,H),

Point(0, H), Fillet(r),

Point(0, 0), Fillet(r) );