WaBis

walter.bislins.ch

JSG: JsgPolygon

JsgPolygon ist eine Klasse, die ein 2D-Polygon repräsentiert. JsgPolygonList implementiert eine Liste von JsgPolygon Objekten.

JsgPolygon Klasse

JsgPolygon = {
X: array of Number;
X-Koordinaten des Polygons
Y: array of Number;
Y-Koordinaten des Polygons
Z: array of Number;
Z-Koordinaten des Polygons (optional für 2D Polygone)
Size: Integer(>=0);
Anzahl gültige Koordinaten in X und Y
}

Ein Objekt dieser Klasse wird für Poly und WorkPoly verwendet, siehe NewPoly(), AddPointToPoly(), DrawPoly() usw. Mit der Funktion CopyPoly() kann eine Kopie von Poly erzeugt werden.

JsgPolygon Properties

X, Y, Z Arrays mit Koordinaten des Polygons
Size Anzahl gültige Punkte in den Arrays X, Y und Z

JsgPolygon Funktionen

JsgPolygon() Erzeugt ein JsgPolygon
JsgPolygon.Ok() gibt true zurück, wenn ein Objekt ein JsgPolygon ist
JsgPolygon.Is3D() gibt true zurück, wenn das Polygon 3-dimensional ist
JsgPolygon.Init() Löscht die internen Arrays X, Y und Z und setzt Size = 0
JsgPolygon.Reset() Setzt Size = 0 ohne Löschen der internen Arrays X, Y und Z
JsgPolygon.IsEmpty() Gibt bei einem Polygon der Länge 0 true zurück
JsgPolygon.GetFirstPoint3D() Gibt die 3D Koordinaten des ersten Punktes zurück
JsgPolygon.GetLastPoint3D() Gibt die 3D Koordinaten des letzten Punktes zurück
JsgPolygon.AddPoint() Fügt die Koordinaten eines Punktes den Arrays X, Y und Z hinzu
JsgPolygon.AddPoint3D() Fügt einen 3D Punkt den Arrays X, Y und Z hinzu
JsgPolygon.AddPoly() Fügt die Koordinaten eines JsgPolygons den Arrays X, Y und Z hinzu
JsgPolygon.RemoveLastPoint() entfernt den letzten Punkt des Polygons
JsgPolygon.Close() schliesst das Polygon
JsgPolygon.IsSamePoint() vergleicht zwei Punkte zweier Polygone
JsgPolygon.Copy() Kopiert ein Polygon in ein bestehendes Polygon oder erzeugt eine neue Kopie
JsgPolygon.Invert() Kehrt die Reihenfolge der Punkte im Polygon um
JsgPolygon.InvertArrays() Kehrt die Reigenfolge der Punkte dreier Arrays mit den X/Y/Z-Koordinaten um
JsgPolygon.Roll() Verschiebt die Reihenfolge der Punkte im Polygon
JsgPolygon.RollArrays() Verschiebt die Reihenfolge der Punkte zweier Arrays mit den X/Y/Z-Koordinaten

Funktionen, welche ein JsgPolygon akzeptieren oder zurückgeben:

MakeRectPolygon() Erzeugt ein Rechteck-Polygon im WorkPoly
MakeEllipseArcPolygon() Erzeugt ein Ellipsenbogen-Polygon im WorkPoly
MakeBezierPolygon() Erzeugt ein Bezier-Polygon
Polygon() Zeichnet ein JsgPolygon
PolygonArrow() Zeichnet ein JsgPolygon mit Pfeilsymbolen
Marker() Zeichnet die Punkte eines JsgPolygon

JsgPolygon.X, Y, Z

JsgPolygon.X, Y, Z: Array of Number; ReadOnly; Init = [ ]; Koordinaten des Polygons

Die Arrays X, Y und Z können grösser sein, als die Anzahl nach JsgPolygon.Reset() mit JsgPolygon.AddPoint() oder JsgPolygon.AddPoly() hinzugefügten Koordinaten. Size gibt an, wieviele Punkte nach JsgPolygon.Reset() hinzugefügt wurden. Alle JsGraph Funktionen, die ein JsgPolygon akzeptieren, berücksichtigen nur die ersten Size Elemente der Arrays. Damit kann der selbe Speicher für verschieden grosse Polygone wiederverwendet werden.

Ein JsgPolygon kann 2D oder 3D Punkte enthalten, siehe JsgPolygon() und JsgPolygon.Init(). Ein 2D Polygon ist dadurch gekennzeichnet, dass sein Z-Array = null ist. In diesem Fall werden alle Z-Koordinaten ignoriert.

JsgPolygon.Size

JsgPolygon.Size: Integer; ReadOnly; Init = 0; Anzahl gültige Koordinaten in X, Y und Z

Mit JsgPolygon.Init() und JsgPolygon.Reset() wird Size = 0 gesetzt. Mit jedem Aufruf von JsgPolygon.AddPoint() wird Size um 1 erhöht. Falls Size dabei grösser wird als die Arrays X, Y und Z, werden diese entsprechend vergrössert.

Bei JsgPolygon.Reset() wird zwar Size auf 0 gesetzt, die Arrays behalten aber ihre momentane Grösse bei. Damit kann der Speicher wiederverwendet werden. Relevant ist in jedem Fall der aktuelle Füllstand Size, nicht die Grösse der Arrays (Property length)!

JsgPolygon()

new JsgPolygon( type3D )

type3D: Boolean; Optional; Default = false

Erzeugt ein neues JsgPolygon. Wenn type3D = true gesetzt wird, wird ein 3D Polygon erzeugt, sonst ein 2D Polygon, bei dem die Z-Komponente ignoriert wird.

JsgPolygon.Ok()

global JsgPolygon.Ok( Object )

Object: any or undefined
Return: Boolean

Gibt true zurück, wenn Object definiert ist und vom Typ JsgPolygon ist.

Dies ist eine globale Funktion, die wiefolgt verwendet werden kann:

if (JsgPolygon.Ok( any )) {
  // handle JsgPolygon any
}

JsgPolygon.Is3D()

JsgPolygon.Is3D( )

Return: Boolean

Gibt true zurück, das Polygon 3-dimensional ist, siehe JsgPolygon() und JsgPolygon.Init().

JsgPolygon.Init()

JsgPolygon.Init( type3D )

type3D: Boolean; Optional; Default = false
Return this: JsgPolygon

Löscht die internen Arrays X, Y und Z und erzeugt neue leere Arrays dafür. Size wird auf 0 gesetzt. Vergleiche mit JsgPolygon.Reset().

Wenn type3D = true gesetzt wird, wird ein 3D Polygon initialisiert, sonst ein 2D Polygon, bei dem die Z-Komponente ignoriert wird.

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Init().AddPoint(x1,y1).AddPoint(x2,y2);

JsgPolygon.Reset()

JsgPolygon.Reset( )

Return this: JsgPolygon

Setzt Size auf 0. Die internen Arrays X und Y werden nicht verändert. Vergleiche mit JsgPolygon.Init().

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Reset().AddPoint(x1,y1).AddPoint(x2,y2);

Diese Funktion wird bei NewPoly() für Poly aufgerufen.

JsgPolygon.IsEmpty()

JsgPolygon.IsEmpty( )

Returns: Boolean

Gibt true zurück, wenn das Polygon keine Punkte enthält, also wenn JsgPolygon.Size = 0 ist.

JsgPolygon.GetFirstPoint3D()

JsgPolygon.GetFirstPoint3D( p )

p: array[3] of Number or JsgVect3
Return: boolean

Wenn das Polygon nicht leer ist, werden die X/Y/Z-Koordinaten des ersten Punktes des Polygons in p gespeichert. Wenn das Polygon leer ist wird nichts gemacht aber die Funktion gibt dann false zurück, sonst true.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

JsgPolygon.GetLastPoint3D()

JsgPolygon.GetLastPoint3D( p )

p: array[3] of Number or JsgVect3
Return: boolean

Wenn das Polygon nicht leer ist, werden die X/Y/Z-Koordinaten des letzten Punktes des Polygons in p gespeichert. Wenn das Polygon leer ist wird nichts gemacht aber die Funktion gibt dann false zurück, sonst true.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

JsgPolygon.AddPoint()

JsgPolygon.AddPoint( x, y, z )

x, y, z: Number
Koordinaten des Punktes
Return this: JsgPolygon

Fügt die Koordinaten des Punktes an der Position Size in die Arrays X, Y und Z ein und erhöht Size um 1. Wenn die Arrays kleiner als Size sind, werden sie automatisch vergrössert, bevor die Koordinaten gespeichert werden.

Bei eine 2D-Polygon wird die Z-Koordinate ignoriert.

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Reset().AddPoint(x1,y1).AddPoint(x2,y2);

Diese Funktion wird bei AddPointToPoly() für Poly aufgerufen.

JsgPolygon.AddPoint3D()

JsgPolygon.AddPoint3D( p )

p: array[3] of Number or JsgVect3
Koordinaten des Punktes
Return this: JsgPolygon

Fügt die Koordinaten des Punktes p an der Position Size in die Arrays X, Y und Z ein und erhöht Size um 1. Wenn die Arrays kleiner als Size sind, werden sie automatisch vergrössert, bevor die Koordinaten gespeichert werden.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Reset().AddPoint(x1,y1).AddPoint(x2,y2);

Diese Funktion wird bei AddPointToPoly() für Poly aufgerufen.

JsgPolygon.AddPoly()

JsgPolygon.AddPoly( poly, offset )

poly: JsgPolygon
offset: Number(>=0); Optional; Default = 0
Return this: JsgPolygon

Fügt die Koordinaten des Polygons poly an der Position Size in die Arrays X, Y und Z ein und erhöht Size entsprechend. Wenn die Arrays kleiner als Size sind, werden sie automatisch vergrössert, bevor die Koordinaten gespeichert werden.

Mit offset kann angegeben werden, welches der erste Punkt in poly sein soll, der in das aktuelle Polygon übernommen werden soll. Wenn offset > poly.Size ist, wird nichts ausgeführt.

Bei einem 2D-Polygon werden die Z-Korrdinate ignoriert. Hinweis: poly muss dieselbe Dimension wie das aktuelle Polygon this haben.

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Reset().AddPoly(poly).AddPoint(x2,y2);

JsgPolygon.RemoveLastPoint()

JsgPolygon.RemoveLastPoint( )

Return this: JsgPolygon

Entfernt den letzten Punkt des Polygons, indem Size um 1 erniedrigt wird. Wenn Size = 0 ist, wird nichts gemacht.

Die Funktion gibt das aktuelle Polygon als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPoly.Reset().RemoveLastPoint().AddPoint(x,y);

JsgPolygon.Close()

JsgPolygon.Close( )

Return: Boolean

Wenn der letzte Punkt des Polygons ungleich dem ersten Punkt ist, wird eine Kopie des ersten Punktes ans Ende des Polygons hinzugefügt, damit das Polygon geometrisch geschlossen ist. Wenn der letzte und erste Punkt des Polygons dieselben Koordinaten haben, wenn also das Polygon bereits geschlossen war, wird nichts gemacht und false zurück gegeben. Wenn das noch nicht geschlossen war und nun von der Funktion geschlossen wurde, wird true zurückgegeben.

Verwende die Funktion JsgPolygon.RemoveLastPoint() um den hinzugefügten Punkt allenfalls wieder zu entfernen, um das ursprüngliche Polygon wieder herzustellen.

JsgPolygon.IsSamePoint()

JsgPolygon.IsSamePoint( i, poly, j )

i: Integer(>=0)
Punkt-Index eines Punktes dieses Polygons
poly: JsgPolygon
Polygon, das den Vergleichspunkt enthält
j: Integer(>=0)
Punkt-Index eines Punktes von poly

Gibt true zurück, wenn der Punkt i in diesem Polygon dieselben Koordinaten wie der Punkt j im Polygon poly hat.

Diese Funktion kann sowohl auf 2-dimensionale als auch auf 3-dimensionale Polygone angewandt werden. Als poly kann auch dieses Polygon übergeben werden, um zwei Punkte dieses Polygons zu vergleichen.

JsgPolygon.Copy()

JsgPolygon.Copy( Dest, UseNewArrays )

Dest: JsgPolygon; Optional
Optionales Ziel-Polygon
UseNewArrays: Boolean; Optional; Default = false
Return: JsgPolygon
Dest or new JsgPolygon

Wenn Dest angegeben wird, werden die Koordinaten des aktuellen Polygons in die Arrays von Dest kopiert. Wenn Dest nicht definiert wird, wird ein neues JsgPolygon erzeugt, in welches die Koordinaten kopiert werden. Dest oder das neue Polygon werden zurückgegeben.

Wenn Dest angegeben wird, so kann mit UseNewArrays gesteuert werden, ob vor dem Kopieren in Dest neue Arrays angelegt werden sollen oder ob die bestehenden verwendet werden sollen. Ist UseNewArrays = true haben die Arrays des zurückgegebenen Polygons immer genau Size Elemente (X.length = Y.length = Z.length = Size).

Hinweis: die Polygon-Kopie bekommt dieselbe Dimension wie das ursprüngliche Polygon.

JsgPolygon.Invert()

JsgPolygon.Invert( )

Kehrt die Reihenfolge der Punkte des Polygons um. Der erste Punkt wird zum letzten Punkt und der letzte Punkt wird zum ersten Punkt usw.

JsgPolygon.InvertArrays()

global JsgPolygon.InvertArrays( XArray, YArray, Zarray, Size )

XArray, YArray, Zarray: Array of Number
X/Y/Z-Koordinaten
Size: Integer; Optional; Default = XArray.length
Grösse der Arrays

Kehrt die Reihenfolge der Punkte in den Arrays um. Der erste Punkt wird zum letzten Punkt und der letzte Punkt wird zum ersten Punkt usw.

Wenn Zarray = null ist, wird dieser ignoriert. Dies ist praktisch, wenn die Funktion für 2D-Polygone aufgerufen wird.

Hinweis: Dies ist keine Memberfunktion eines JsgPolygon Objektes. Sie kann daher wie eine normale Funktion aufgerufen werden:

var xarr = [], yarr = [];
Compute( xarr, yarr );
JsgPolygon.InvertArrays( xarr, yarr );

JsgPolygon.Roll()

JsgPolygon.Roll( N )

N: Integer
1: Verschiebung eine Stelle nach unten, -1: Verschiebung nach oben

Verschiebt die Punkte des Polygons um N Stellen. Ist N grösser Null werden die Punkte in Richtung niedrigem Index verschoben. Mit negativem N wird in Richtung höherem Index verschoben. Punkte, welche unten oder oben aus dem Polygon geschoben werden, werden am anderen Ende eingefügt.

Note: Wenn N > Size / 2 ist, kommt es auf dasselbe heraus, wie wenn um N = N - Size, also in die andere Richtung, verschoben wird. Beispiel: Wenn das Polygon 4 Punkte enthält und um N = 3 nach unten verschoben werden soll, ist das Resultat dasselbe, wie wenn um N = 3 - 4 = -1, also um eine Stelle nach oben verschoben wird.

Wenn der Betrag von N Grösser als Size ist, wird um den Rest der Division von N / Size verschoben. Beispiel: N = 5, Size = 4 → False.

JsgPolygon.RollArrays()

global JsgPolygon.Roll( XArray, YArray, Zarray, N, Size )

XArray, YArray, zArray: Array of Number
X/Y/Z-Koordinaten
N: Integer
1: Verschiebung eine Stelle nach unten, -1: Verschiebung nach oben
Size: Integer; Optional; Default = XArray.length
Grösse der Arrays

Verschiebt die Punkte des Polygons um N Stellen, siehe JsgPolygon.Roll().

Wenn Zarray = null ist, wird dieser ignoriert. Dies ist praktisch, wenn die Funktion für 2D-Polygone aufgerufen wird.

Hinweis: Dies ist keine Memberfunktion eines JsgPolygon Objektes. Sie kann daher wie eine normale Funktion aufgerufen werden:

var xarr = [], yarr = [];
Compute( xarr, yarr );
JsgPolygon.RollArrays( xarr, yarr, n );

JsgPolygonList Klasse

JsgPolygonList = {
PolyList: array of JsgPolygon;
Size: Integer(>=0);
Anzahl JsgPolygon Objekte in PolyList
CurrPoly: JsgPolygon or null;
Link auf aktuelles Polygon in PolyList
}

Ein Objekt dieser Klasse wird für die Funktion ClipPolygon() verwendet.

JsgPolygonList Properties

PolyList Arrays der einzelnen Polygone
Size Anzahl Polygone
CurrPoly aktuelles Polygon in PolyList oder null

Achtung: Verwende immer Size wenn die Anzahl Polygone abgefragt werden soll, nicht PolyList.length, da letztere grösser sein kann als Size!

JsgPolygonList Funktionen

JsgPolygonList() Erzeugt eine JsgPolygonList
JsgPolygonList.Ok() gibt true zurück, wenn ein Objekt eine JsgPolygonList ist
JsgPolygonList.Is3D() gibt true zurück, wenn die Polygone in der List 3-dimensional sind.
JsgPolygonList.IsEmpty() Gibt bei einer leeren Polygon-Liste oder wenn das erste Polygon der Liste leer ist true zurück
JsgPolygonList.Reset() Setzt Size = 0 ohne Löschen des internen Arrays PolyList
JsgPolygonList.NewPoly() Erzeugt ein neues JsgPolygon und fügt es an PolyList an. Das neue Polygon wird das aktuelle Polygon für die Funktion JsgPolygonList.AddPoint()
JsgPolygonList.GetFirstPoly() Gibt das erste Polygon der PolyList zurück
JsgPolygonList.GetLastPoly() Gibt das letzte Polygon der PolyList zurück.
JsgPolygonList.GetFirstPoint3D() Gibt den ersten Punkt des letzten Polygons zurück
JsgPolygonList.GetLastPoint3D() Gibt den letzten Punkt des letzten Polygons zurück
JsgPolygonList.AddPoint() Fügt die Koordinaten eines Punktes dem letzten Polygon der PolyList an.
JsgPolygonList.AddPoint3D() Fügt die Koordinaten eines 3D-Punktes dem letzten Polygon der PolyList an.
JsgPolygonList.AddPoly() Fügt ein Polygon oder eine Polygon-Liste in diese Polygon-List ein.
JsgPolygonList.RemoveLastPoint() entfernt den letzten Punkt des letzten Polygons
JsgPolygonList.Close() wenn die Punkte nicht identisch sind, wird der erste Punkt des ersten Polygons ans Ende des letzten Polygons angefügt

Funktionen, welche ein JsgPolygonList akzeptieren oder zurückgeben:

PolygonList() Zeichnet alle Polygone einer JsgPolygonList
ClipPolygon() Clippt ein Polygon und gibt die resultierenden Polygone in einer JsgPolygonList zurück.

JsgPolygonList.PolyList

JsgPolygonList.PolyList: Array of JsgPolygon; Init = [ ] 

Der Array PolyList kann grösser sein als die Anzahl der Polygone im JsgPolygonList Objekt. Aus performance Gründen wird bei JsgPolygonList.Reset() der Array PolyList nicht gelöscht, sondern nur Size auf 0 gesetzt. Dadurch können die Polygone in PolyList wiederverwendet werden.

JsgPolygonList.Size

JsgPolygonList.Size: Integer; ReadOnly; Init = 0; Anzahl gültige Polygone in PolyList

Mit JsgPolygonList.Reset() wird Size = 0 gesetzt. Mit jedem Aufruf von JsgPolygonList.NewPoly() wird Size um 1 erhöht. Falls Size dabei grösser wird als der Array PolyList, werd dieser entsprechend vergrössert.

Bei JsgPolygonList.Reset() wird zwar Size auf 0 gesetzt, der Array behält aber seine momentane Grösse bei. Damit kann der Speicher wiederverwendet werden. Relevant ist in jedem Fall der aktuelle Füllstand Size, nicht die Grösse des Arrays (Property length)!

JsgPolygonList.CurrPoly

JsgPolygonList.CurrPoly: JsgPolygon; ReadOnly; Init = null; Link auf aktuelles Polygon in PolyList

CurrPoly zeigt immer auf das letzte JsgPolygon in PolyList. Wenn PolyList leer ist, z.B. nach Aufruf von JsgPolygonList.Reset(), ist CurrPoly = null.

JsgPolygonList()

new JsgPolygonList( type3D )

type3D: Boolean; Optional; Default = false

Erzeugt ein neues JsgPolygonList Objekt. Wenn type3D = true gesetzt wird, werden alle mit JsgPolygonList.NewPoly() erzeugten Polygone als 3-dimensionale Polygone erzeugt, sonst als 2D-Polygone.

JsgPolygonList.Ok()

global JsgPolygonList.Ok( Object )

Object: any or undefined
Return: Boolean

Gibt true zurück, wenn Object definiert ist und vom Typ JsgPolygonList ist.

Dies ist eine globale Funktion, die wiefolgt verwendet werden kann:

if (JsgPolygonList.Ok( any )) {
  // handle JsgPolygonPolygon any
}

JsgPolygonList.Is3D()

JsgPolygonList.Is3D( )

Return: Boolean

Gibt true zurück, wenn die Polygone in der PolyList 3-dimensional sind.

JsgPolygonList.IsEmpty()

JsgPolygonList.IsEmpty( )

Return: Boolean

Gibt true zurück, wenn PolyList leer ist oder wenn das erste Polygon der Liste leer ist, siehe JsgPolygon.IsEmpty().

JsgPolygonList.Reset()

JsgPolygonList.Reset( )

Return this: JsgPolygonList

Setzt Size auf 0. Der interne Array PolyList wird nicht verändert.

Die Funktion gibt das Objekt this als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPolyList.Reset().NewPoly().AddPoint(x1,y1).AddPoint(x2,y2);

JsgPolygonList.NewPoly()

JsgPolygonList.NewPoly( )

Return this: JsgPolygonList

Erzeugt ein neues JsgPolygon und fügt es am Ende der PolyList ein. Der Array PolyList wird wenn nötig entsprechend vergrössert. Die Dimension des erzeugten JsgPolygon ist dieselbe wie die dieses JsgPolygonList Objektes.

Das letzte JsgPolygon in der Liste PolyList ist immer das aktuelle Polygon, welchem Punkte mit AddPoint() angefügt werden. Bevor also AddPoint aufgerufen werden darf, muss mit NewPoly() mindestens ein Polygon erzeugt worden sein.

Der Array PolyList wird bei JsgPolygonList.Reset() nicht gelöscht, sondern es wird ledglich Size auf 0 gesetzt. Wenn der Array PolyList grösser als Size ist, wird in dieser Funktion ledglich Size erhöht und das Polygon an dieser Stelle in PolyList wiederverwendet. Für das Polygon an der Stelle Size wird die Funktion JsgPolygon.Reset() gerufen.

Die Funktion gibt das aktuelle JsgPolygonList this als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPolyList.Reset().NewPoly().AddPoint(x1,y1).AddPoint(x2,y2);

JsgPolygonList.GetFirstPoly()

JsgPolygonList.GetFirstPoly( )

Return: JsgPolygon

Gibt das erste Polygon von PolyList zurück. Das PolyList darf nicht leer sein: JsgPolygonList.Size > 0.

JsgPolygonList.GetLastPoly()

JsgPolygonList.GetLastPoly( )

Return: JsgPolygon

Gibt das letzte Polygon von PolyList zurück. Das PolyList darf nicht leer sein: JsgPolygonList.Size > 0

JsgPolygonList.GetFirstPoint3D()

JsgPolygonList.GetFirstPoint3D( p )

p: array[3] of Number or JsgVect3
Return: boolean

Gibt den ersten Punkt des letzten Polygons von PolyList zurück.

Wenn das Polygon nicht leer ist, werden die X/Y/Z-Koordinaten des ersten Punktes des letzten Polygons in p gespeichert. Wenn das Polygon leer ist wird nichts gemacht aber die Funktion gibt dann false zurück, sonst true.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

JsgPolygonList.GetLastPoint3D()

JsgPolygonList.GetLastPoint3D( p )

p: array[3] of Number or JsgVect3
Return: boolean

Gibt den letzten Punkt des letzten Polygons von PolyList zurück.

Wenn das Polygon nicht leer ist, werden die X/Y/Z-Koordinaten des letzten Punktes des Polygons in p gespeichert. Wenn das Polygon leer ist wird nichts gemacht aber die Funktion gibt dann false zurück, sonst true.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

JsgPolygonList.AddPoint()

JsgPolygonList.AddPoint( x, y, z )

x, y, z: Number
Koordinaten des Punktes
Return this: JsgPolygonList

Fügt die Koordinaten des Punktes am aktuellen Polygon der PolyList an der Position JsgPolygon.Size in die Arrays X, Y und Z ein und erhöht JsgPolygon.Size um 1. Wenn die Arrays kleiner als JsgPolygon.Size sind, werden sie automatisch vergrössert, bevor die Koordinaten gespeichert werden.

Die Funktion gibt das aktuelle JsgPolygonList als Returnwert zurück. Damit können Funktionsaufrufe verkettet werden:

myPolyList.Reset().NewPoly().AddPoint(x1,y1).AddPoint(x2,y2);

JsgPolygonList.AddPoint3D()

JsgPolygonList.AddPoint3D( p )

p: array[3] of Number or JsgVect3
Koordinaten des Punktes
Return this: JsgPolygonList

Fügt den Punkt p am Ende des aktuellen Polygons an, d.h. des letzten Polygons von PolyList.

Hinweis: Das Polygon muss 3-dimensional sein, siehe JsgPolygon().

JsgPolygonList.AddPoly()

JsgPolygonList.AddPoly( polys, appendMode )

polys: JsgPolygon or JsgPolygonList
appendMode: Integer(0,1,2)
Return this: JsgPolygonList

Fügt die Punkte des Polygons oder der Polygone polys an diese Polygon Liste an, abhängig vom appendMode.

appendMode Beschreibung
0: new Fügt alle Polygone als neue Polygone am Ende dieser Polygon-Liste an
1: extend Wenn jeweils der erste Punkt eines Polygons von polys dieselben Koordinaten hat wie der letzte Punkt des letzten Polygons von PolyList, werden die Punkte von polys an das letzte Polygon von PolyList angehängt, wobei der erste Punkt von poly übersprungen wird. Wenn die Koordinaten nicht übereinstimmen oder kein Polygon in PolyList ist, wird für das jeweilige Polygon in polys ein neues Polygon in PolyList erzeugt.
2: append Fügt die Polygone von polys ans aktuelle Polygon von PolyList an. Wenn der letzte Punkt des Polygons von PolyList gleich dem ersten Punkt eines Polygons in polys ist, wird der erste Punkt übersprungen.
>0: merge Gemeinsame End- und Start-Punkte werden zu einem Punkt verschmolzen

JsgPolygonList.RemoveLastPoint()

JsgPolygonList.RemoveLastPoint( )

Entfernt den letzten Punkt des letzten Polygons von PolyList, indem Size um 1 erniedrigt wird. Wenn das letzte Polygon leer ist, wird nichts gemacht.

JsgPolygonList.Close()

JsgPolygonList.Close( )

Return: Boolean

Fügt den ersten Punkt des ersten Polygons in PolyList am Ende des letztem Polygons von PolyList an, wenn die Punkte nicht identisch sind. Gibt true zurück, wenn ein Punkt angefügt wurde. Verwende JsgPolygonList.RemoveLastPoint() um den angefügten Punkt wieder zu entfernen, falls erforderlich.

Weitere Infos zur Seite
Erzeugt Samstag, 30. Januar 2016
von wabis
Zum Seitenanfang
Geändert Samstag, 24. Februar 2018
von wabis