Page.DrawSpline-Methode (Visio)

Erstellt ein neues Shape, dessen Pfad einer angegebenen Sequenz von Punkten folgt.

Syntax

Ausdruck. DrawSpline( _xyArray()_ , _Tolerance_ , _Flags_ )

Ausdruck Eine Variable, die ein Page-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
xyArray() Erforderlich Double Ein Array von wechselnden X- und Y-Werten, mit denen die Punkte im Pfad des neuen Shapes definiert werden.
Toleranz Erforderlich Double Wie weit sich der Pfad des neuen Shapes an die angegebenen Punkte annähern muss.
Flags Erforderlich Integer Kennzeichen, die beeinflussen, wie das Shape gezeichnet wird.

Rückgabewert

Form

Bemerkungen

Mit der DrawSpline-Methode wird ein neues Shape erstellt, dessen Pfad innerhalb einer angegebenen Toleranz des angegebenen Arrays von Punkten liegt. Geben Sie eine Toleranz von Null (0) an, um eine genaue Übereinstimmung mit den Punkten zu erreichen. Üblicherweise wird bei der DrawSpline-Methode durch die Punkte eine Übereinstimmung mit Splinesegmenten erreicht, manchmal werden jedoch Liniensegmente oder kreisförmige Bogensegmente in dem neuen Shape erzeugt.

Die Kontrollpunkte und die Toleranz befinden sich in internen Zeichnungseinheiten (Zoll) in Bezug auf den Koordinatenbereich der Seite, master oder Gruppe, in der die neue Form erstellt 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.

Die Abweichung zwischen den Punkten und dem Pfad des resultierenden Shapes liegt ungefähr innerhalb der Toleranz. Wenn eine große Anzahl von Punkten angegeben wurde, kann die tatsächliche Abweichung manchmal die vorgeschriebene Toleranz überschreiten.

Das Flags-Argument ist eine Bitmaske für die Angabe von Optionen zum Zeichnen des neuen Shapes. Der Wert sollte Null oder eine Kombination aus mindestens einem der folgenden Werte sein.

Konstante Wert
visSplinePeriodic 1(&H1)
visSplineDoCircles 2(&H2)
visSplineAbrupt 4(&H4)
visSpline1D 8(&H8)

Wenn Flags den Wert visSplinePeriodic umfasst und die folgenden Bedingungen erfüllt sind, versucht die Anwendung, einen periodischen Spline zu zeichnen. Sonst wird von Visio ein nicht periodischer Spline gezeichnet:

  • Der letzte Punkt muss eine Wiederholung des ersten sein.

  • Wenn auch das Kennzeichen visSplineAbrupt enthalten ist, muss für den gesamten geschlossenen Pfad, der von den Punkten beschrieben wird, die Richtung und die Krümmung abrupt geändert werden können.

Wenn Flags den Wert visSplineDoCircles umfasst, werden von Microsoft Visio kreisförmige Segmente im angegebenen Array von Punkten erkannt, und für diese Segmente werden anstelle von Splinezeilen kreisförmige Bogen generiert.

Wenn Flags den Wert visSplineAbrupt umfasst, wird der Spline von Visio unterbrochen, sobald eine abrupte Änderung der Richtung oder der Krümmung im Pfad des Punkts erkannt wird. Eine abrupte Änderung der Richtung wird durch drei aufeinander folgende Punkte, A, B, C, in der Liste definiert, bei denen der Abstand zwischen B und dem Liniensegment AC größer ist als die doppelte Toleranz. Von der Anwendung wird Punkt B auch als abrupte Änderung betrachtet, wenn eines der Segmente AB oder BC mehr als doppelt so lang ist wie das andere. An dem Punkt, an dem eine abrupte Änderung erkannt wird, beendet die Anwendung das aktuelle Element (Linie, Bogen oder Spline) und beginnt mit einem neuen.

Wenn FlagsvisSpline1D enthalten und der erste und letzte Punkt in xyArray() nicht übereinstimmen, erzeugt die DrawSpline-Methode eine Form, die eindimensionales (1D)-Verhalten aufweist. Andernfalls wird eine Form mit zweidimensionalen (2D)-Verhalten erzeugt.

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

Beispiel

Das folgende Beispiel zeigt, wie ein periodischer Spline durch fünf beliebige Punkte gezeichnet wird, wobei der Splineansatz innerhalb von 0,25 Zoll (Zeichnung) von jedem Punkt erforderlich ist. Es ermöglicht Visio, neue Segmente im Pfad der neuen Form an Punkten zu starten, die als abrupt angesehen werden.

 
Public Sub DrawSpline_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 components (array elements 1,3,5,7,9) to 1,2,3,4,5 
 adblXYPoints((intCounter * 2) - 1) = intCounter 
 
 'Set y components (array elements 2,4,6,8,10) to f(i) 
 adblXYPoints(intCounter * 2) = (intCounter * intCounter) - (7 * intCounter) + 15 
 Next intCounter 
 
 Set vsoShape = ActivePage.DrawSpline(adblXYPoints, 0.25, visSplineAbrupt) 
 
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.