Hallo,
gibt es eine eingebaute Funktion in OO Basic mit der man Eckkoordinaten von Polygonen (OO Draw) auslesen kann ?
Grüße
Michael
Auslesen von Eckkoordinaten von Polygonen (OO Draw)
Moderator: Moderatoren
Hey Michael,
Die kannst du natürlich alle auslesen und verarbeiten.
Gruss
Thomas
Na ja, nicht eine eingebaute Funktion. Aber: Jedes Polygon-Shape (siehe auch com.sun.star.drawing.PolyPolygonDescriptor ) lbesitzt eine Eigenschaft "PolyPolygon", welches einen Array von Arrays von Objekten (Structs) des Typs com.sun.star.awt.Point enthält - und die stellen die Punkte des Polygons dar - bezogen auf die Seite (Kooordinaten).eingebaute Funktion in OO Basic mit der man Eckkoordinaten von Polygonen (OO Draw) auslesen kann
Die kannst du natürlich alle auslesen und verarbeiten.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hey Michael,
und damit das nicht alles so "theoretisch" bleibt, hier mal ein praktisches Beispiel:
Zeichne mal in ein neues Draw-Dokument (2.0) ein geschlossenes Polygon - nutze das Werkzeug "geschlossenes, gefülltes Polygon".
Die Seite darf nur ein "Shape" enthalten! dann rufe das Makro auf - die jeweiligen Koordinaten der Eckpunkte werden aufgelistet:
Na ja, die Hauptschwierigkeit besteht in der Identifikation des gewünschten Shapes - bei nur einem ist das einfach, aber alles ist intern ein "Shape", und die werden einfach intern durchnummeriert. Du kannst sie also nur über eine "Enumeration" erreichen - und musst sie mühevoll identifizieren.
Gruss
Thomas
und damit das nicht alles so "theoretisch" bleibt, hier mal ein praktisches Beispiel:
Zeichne mal in ein neues Draw-Dokument (2.0) ein geschlossenes Polygon - nutze das Werkzeug "geschlossenes, gefülltes Polygon".
Die Seite darf nur ein "Shape" enthalten! dann rufe das Makro auf - die jeweiligen Koordinaten der Eckpunkte werden aufgelistet:
Code: Alles auswählen
Sub PunkteAuflisten
oDoc = thisComponent
oPage = oDoc.drawPages(0)
oShape = oPage.getByIndex(0)
aArray1 = oShape.PolyPolygon
aPunkte = aArray1(0)
for i=0 to Ubound(aPunkte)
oPunkt = aPunkte(i)
s = s & i &": X = " & oPunkt.X & "; Y = " & oPunkt.Y & chr(13)
next
msgbox s
End Sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic