Master.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 Master-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.
degree 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 p0 genannt wird, wird für jede ganze Zahl m zwischen 1 und k p (m * Grad) als letzter Kontrollpunkt eines Bézier-Segments 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 ist. Die zusammengesetzte Bézier-Kurve wird in der Anwendung als B-Spline mit ganzzahligen Knoten von Multiplizität = Grad dargestellt.

Die Kontrollpunkte sollten in internen Zeichnungseinheiten (Zoll) bezogen auf den Koordinatenbereich des Zeichenblatts, des Masters oder der Gruppe liegen, auf dem das Shape gezeichnet wird. Das übergebene Array sollte ein SAFEARRAY von 8-Byte-Gleitkommawerten sein, die per Verweis übergeben werden (VT_R8|VT_ARRAY|VT_BYREF). So übergibt Microsoft Visual Basic Arrays an Automatisierungsobjekte.

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 der letzte Punkt in xyArray() nicht übereinstimmen, erzeugt die Methode DrawBezier eine Form mit eindimensionalem (1D) Verhalten; Andernfalls wird eine Form mit zweidimensionalem Verhalten (2D) 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.