Shape.DrawBezier-Methode (Visio)

Erstellt ein Shape, dessen Pfad durch die angegebene Sequenz von Bézier-Kontrollpunkten definiert ist.

Syntax

Ausdruck. DrawBezier( _xyArray()_ , _degree_ , _Flags_ )

Ausdruck Eine Variable, die ein Shape-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
xyArray() Erforderlich Double Ein Array von wechselnden X- und Y-Werten, die die Bézier-Kontrollpunkte für das neue Shape definieren.
Grad Erforderlich Integer Der Grad der Bézier-Kurve.
Flags Erforderlich Integer Kennzeichen, die beeinflussen, wie das Shape gezeichnet wird.

Rückgabewert

Form

Bemerkungen

Die Parameter xyArray() und degree müssen die folgenden Bedingungen erfüllen:

1 <= Grad< = 9

Die Anzahl der Punkte muss k * Grad + 1 sein, wobei k eine positive ganze Zahl ist. Wenn der erste Punkt als p0 bezeichnet wird, wird für jede ganzzahlige m zwischen 1 und kp(m * Grad) als letzter Kontrollpunkt eines Béziersegments sowie als erster Kontrollpunkt des nächsten angenommen.

Das Ergebnis ist eine zusammengesetzte Kurve, die aus k Bézier-Segmenten besteht. Die Eingabepunkte von xyArray() definieren die Kontrollpunkte der Kurve. Wenn Sie eine glatte Kurve wünschen, stellen Sie sicher, dass die Punkte p(n - 1) , pn und p(n + 1) kolinear sind, wenn n = m * Grad mit einer ganzen Zahl m verwendet wird. Die zusammengesetzte Bézier-Kurve wird in der Anwendung als B-Spline mit ganzzahligen Knoten von Multiplizität = Grad dargestellt.

Die Kontrollpunkte sollten sich in internen Zeichnungseinheiten (Zoll) in Bezug auf den Koordinatenbereich des Zeichenblatts, des Masters oder der Gruppe befinden, in dem die Form gezeichnet wird. Das übergebene Array sollte ein SAFEARRAY mit 8-Byte-Gleitkommawerten sein, die als Verweis übergeben werden (VT_R8| VT_ARRAY| VT_BYREF). So übergibt Microsoft Visual Basic Arrays an Automation-Objekte.

Das Flags-Argument ist eine Bitmaske für die Angabe von Optionen zum Zeichnen des neuen Shapes. Der Wert sollte Null (0) oder visSpline1D (8) betragen.

Wenn FlagsvisSpline1D ist und der erste und letzte Punkt in xyArray() nicht übereinstimmen, erzeugt die DrawBezier-Methode eine Form mit einem eindimensionalen (1D)-Verhalten; Andernfalls wird eine Form mit zweidimensionalen (2D)-Verhalten erzeugt.

Wenn die ersten und letzten Punkte in xyArray() übereinstimmen, erzeugt die DrawBezier-Methode ein ausgefülltes Shape.

Beispiel

Mit dem folgenden Beispiel wird gezeigt, wie eine Bézier-Kurve durch fünf beliebige Punkte auf dem aktiven Zeichenblatt gezeichnet wird.

 
Public Sub DrawBezier_Example() 
 
 Dim vsoShape As Visio.Shape 
 Dim intCounter As Integer 
 Dim adblXYPoints(1 To (5 * 2)) As Double 
 
 For intCounter = 1 To 5 
 
 'Set x-coordinates (array elements 1,3,5,7,9) to 1,2,3,4,5 
 adblXYPoints((intCounter * 2) - 1) = intCounter 
 
 'Set y-coordinates (array elements 2,4,6,8,10) to f(intCounter) 
 adblXYPoints(intCounter * 2) = (intCounter * intCounter) - (7 * intCounter) + 15 
 
 Next intCounter 
 
 Set vsoShape = ActivePage.DrawBezier(adblXYPoints, 2, visSpline1D) 
 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.