Page. DrawSpline-Methode (Visio)Page.DrawSpline method (Visio)

Erstellt ein neues Shape, dessen Pfad einer angegebenen Sequenz von Punkten folgt.Creates a new shape whose path follows a given sequence of points.

SyntaxSyntax

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

Ausdruck Eine Variable, die ein Page -Objekt darstellt.expression A variable that represents a Page object.

ParameterParameters

NameName Erforderlich/OptionalRequired/Optional DatentypData type BeschreibungDescription
xyArray ()xyArray() ErforderlichRequired DoubleDouble Ein Array von wechselnden x -und y -Werten, die Punkte im Pfad des neuen Shapes definieren.An array of alternating x and y values that define points in the new shape's path.
ToleranzTolerance ErforderlichRequired DoubleDouble Wie weit sich der Pfad des neuen Shapes an die angegebenen Punkte annähern muss.How closely the path of the new shape must approximate the given points.
FlagsFlags ErforderlichRequired IntegerInteger Kennzeichen, die beeinflussen, wie das Shape gezeichnet wird.Flags that influence how the shape is drawn.

RückgabewertReturn value

FormShape

BemerkungenRemarks

Die DrawSpline -Methode erstellt ein neues Shape, dessen Pfad innerhalb der angegebenen Toleranz des angegebenen Array von Punkten liegt.The DrawSpline method creates a new shape whose path falls within the given tolerance of the given array of points. Geben Sie eine Toleranz von Null (0) an, um eine genaue Übereinstimmung mit den Punkten zu erreichen.To fit the given points exactly, specify a tolerance of zero (0). Ü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.Typically, the DrawSpline method fits spline segments through the points, but it sometimes produces line or circular arc segments in the new shape.

Die Steuerpunkte und Toleranzen befinden sich in internen Zeichnungseinheiten (Zoll) in Bezug auf den Koordinatenbereich der Seite, des Masters oder der Gruppe, in der die neue Form erstellt wird.The control points and tolerance are in internal drawing units (inches) with respect to the coordinate space of the page, master, or group in which the new shape is being created. Das übergebene Array sollte ein SafeArray mit 8-Byte-Gleitkommawerten sein, die durch einen Verweis übergeben werden (VT_R8 | VT_ARRAY | VT_BYREF).The passed array should be a SAFEARRAY of 8-byte floating point values passed by reference (VT_R8|VT_ARRAY|VT_BYREF). So übergibt Microsoft Visual Basic Arrays an Automatisierungsobjekte.This is how Microsoft Visual Basic passes arrays to Automation objects.

Die Abweichung zwischen den Punkten und dem Pfad des resultierenden Shapes liegt ungefähr innerhalb der Toleranz.The error from the points to the path of the resulting shape is roughly within tolerance. Wenn eine große Anzahl von Punkten angegeben wurde, kann die tatsächliche Abweichung manchmal die vorgeschriebene Toleranz überschreiten.When the number of points is large, the actual error may sometimes exceed the prescribed tolerance.

Das Flags -Argument ist eine Bitmaske, die Optionen zum Zeichnen der neuen Form angibt.The Flags argument is a bitmask that specifies options for drawing the new shape. Der Wert sollte Null oder eine Kombination aus mindestens einem der folgenden Werte sein.Its value should be zero or a combination of one or more of the following values.

KonstanteConstant WertValue
visSplinePeriodicvisSplinePeriodic 1 (&H1)1(&H1)
visSplineDoCirclesvisSplineDoCircles 2 (&H2)2(&H2)
visSplineAbruptvisSplineAbrupt 4 (&H4)4(&H4)
visSpline1DvisSpline1D 8 (&H8)8(&H8)

Wenn Flags visSplinePeriodic enthält und die folgenden Bedingungen erfüllt sind, versucht die Anwendung, einen periodischen Spline zu zeichnen.If Flags includes visSplinePeriodic and the following conditions are met, the application attempts to draw a periodic spline. Sonst wird von Visio ein nicht periodischer Spline gezeichnet:Otherwise, Visio draws a non-periodic spline:

  • Der letzte Punkt muss eine Wiederholung des ersten sein.The last point must be a repetition of the first one.

  • Wenn das Flag visSplineAbrupt ebenfalls enthalten ist, muss der gesamte geschlossene Pfad, der durch die Punkte skizziert wird, frei von abrupten Richtungs-und Krümmungsänderungen sein.If the flag visSplineAbrupt is included as well, the entire closed path outlined by the points must be free of abrupt changes of direction and curvature.

Wenn Flags visSplineDoCirclesenthält, erkennt Microsoft Visio kreisförmige Segmente im angegebenen Array von Punkten und generiert kreisförmige Bögen anstelle von Spline-Zeilen für diese Segmente.If Flags includes visSplineDoCircles, Microsoft Visio recognizes circular segments in the given array of points and generates circular arcs instead of spline rows for those segments.

Wenn Flags visSplineAbruptenthält, bricht Visio den Spline, wenn er eine abrupte Änderung der Richtung oder Krümmung in der Spur des Pfads erkennt.If Flags includes visSplineAbrupt, Visio breaks the spline whenever it detects an abrupt change of direction or curvature in the point's trail. 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.An abrupt change of direction is defined by three consecutive points A, B, C in the list, for which the distance between B and the line segment AC is more than twice the tolerance. 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.The application also considers point B to be an abrupt change if one of the segments AB or BC is more than twice as long as the other. 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.At a point where an abrupt change is detected, the application ends the current piece (line, arc, or spline) and starts a fresh one.

Wenn Flags visSpline1D enthält und die ersten und letzten Punkte in xyArray () nicht übereinstimmen, erzeugt die DrawSpline -Methode eine Form, die ein eindimensionales (1D)-Verhalten aufweist, andernfalls wird eine Form erzeugt, die zweidimensionales Verhalten (2D).If Flags includes visSpline1D and the first and last points in xyArray() don't coincide, the DrawSpline method produces a shape that has one-dimensional (1D) behavior, otherwise, it produces a shape that has two-dimensional (2D) behavior.

Wenn die ersten und letzten Punkte in xyArray () übereinstimmen, erzeugt die DrawSpline -Methode eine ausgefüllte Form.If the first and last points in xyArray() do coincide, the DrawSpline method produces a filled shape.

BeispielExample

Im folgenden Beispiel wird gezeigt, wie ein periodischer Spline durch fünf willkürliche Punkte gezeichnet wird, sodass der Spline-Ansatz in 0,25 Zoll (Zeichnung) in jedem Punkt liegt.The following example shows how to draw a periodic spline through five arbitrary points, requiring that the spline approach within 0.25 (drawing) inches of each point. Damit kann Visio neue Segmente im Pfad des neuen Shapes an Punkten beginnen, die als abrupt eingestuft werden.It allows Visio to start new segments in the path of the new shape at points considered abrupt.

 
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 FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.