ich habe mir mit der Ki folgendes Programm erstellt:
Code: Alles auswählen
Sub DrawTouchingCircleSegments()
' Zugriff auf die erste Zeichnungsseite
Dim oDrawPage As Object
oDrawPage = ThisComponent.DrawPages(0)
' Erstellen der ersten Ellipse (erstes Segment)
Dim oSegment1 As Object
oSegment1 = oDrawPage.createInstance("com.sun.star.drawing.EllipseShape")
'oSegment1 = oDrawPage.createInstance("com.sun.star.drawing.Ellipse")
' Position und Größe des ersten Segments
Dim oPosition1 As Object
oPosition1 = CreateUnoObject("com.sun.star.awt.Point")
oPosition1.X = 1000 ' X-Position des ersten Kreissegments
oPosition1.Y = 1000 ' Y-Position des ersten Kreissegments
oSegment1.Position = oPosition1
' Radius des ersten Kreissegments
oSegment1.Width = 2000 ' Breite des ersten Kreises
oSegment1.Height = 2000 ' Höhe des ersten Kreises (gleich für einen Kreis)
' Optional: Linie und Füllung
oSegment1.LineColor = RGB(0, 0, 0) ' Schwarze Linie
oSegment1.LineWidth = 200 ' Linienstärke
oSegment1.FillColor = RGB(255, 255, 0) ' Gelbe Füllung
' Das erste Segment zur Zeichnungsseite hinzufügen
oDrawPage.add(oSegment1)
' Erstellen der zweiten Ellipse (zweites Segment)
Dim oSegment2 As Object
oSegment2 = oDrawPage.createInstance("com.sun.star.drawing.EllipseShape")
' Position und Größe des zweiten Segments
Dim oPosition2 As Object
oPosition2 = CreateUnoObject("com.sun.star.awt.Point")
oPosition2.X = 3000 ' X-Position des zweiten Kreissegments (am Berührungspunkt)
oPosition2.Y = 1000 ' Y-Position des zweiten Kreissegments
oSegment2.Position = oPosition2
' Radius des zweiten Kreissegments
oSegment2.Width = 2000 ' Breite des zweiten Kreises
oSegment2.Height = 2000 ' Höhe des zweiten Kreises (gleich für einen Kreis)
' Optional: Linie und Füllung für das zweite Segment
oSegment2.LineColor = RGB(0, 0, 0) ' Schwarze Linie
oSegment2.LineWidth = 200 ' Linienstärke
oSegment2.FillColor = RGB(0, 255, 0) ' Grüne Füllung
' Das zweite Segment zur Zeichnungsseite hinzufügen
oDrawPage.add(oSegment2)
' Optional: Position des Berührungspunkts anzeigen
Dim oPoint As Object
oPoint = CreateUnoObject("com.sun.star.awt.Point")
oPoint.X = 2000 ' Berührungspunkt X
oPoint.Y = 1000 ' Berührungspunkt Y
MsgBox "Die Kreissegmente berühren sich bei: " & oPoint.X & ", " & oPoint.Y
End Sub
Ich habe die Anweisung schon von Shape auf Ellipse geändert, aber finde keine Lösung.
Unter Linux LUBUNTU verwende ich folgende Libreoffice Version:
Version: 25.8.2.2 (X86_64) / LibreOffice Community
Build ID: 580(Build:2)
CPU threads: 4; OS: Linux 6.17; UI render: default; VCL: qt6 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 4:25.8.2-0ubuntu0.25.10.1
Calc: threaded
Ich würde mich sehr freuen, wenn mir eine/r helfen könnte.
Mit Gruß
Werner