Méthode Master.DrawSpline (Visio)
Crée une forme dont le chemin suit une séquence de points.
Syntaxe
expression. DrawSpline
( _xyArray()_
, _Tolerance_
, _Flags_
)
Expression Variable qui représente un objet Master .
Paramètres
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
xyArray() | Obligatoire | Double | Tableau des valeurs x et y successives qui définissent les points dans le nouveau chemin de la forme. |
Tolerance | Obligatoire | Double | Degré d'approximation du chemin de la nouvelle forme par rapport aux points donnés. |
Flags | Obligatoire | Integer | Indicateurs influençant la manière dont la forme est tracée. |
Valeur renvoyée
Shape
Remarques
La méthode DrawSpline crée une forme dont le chemin suit les points définis et ce, dans les limites de la tolérance indiquée. Pour qu'elle passe exactement par ces points, la tolérance doit être égale à zéro (0). Normalement, la méthode DrawSpline fait passer des segments de spline par les points ; cependant, elle produit parfois des segments de trait ou d'arc circulaire dans la nouvelle forme.
Les points de contrôle et la tolérance sont des unités de dessin internes (pouces) par rapport à l'espace coordonné de la page, de la forme de base ou du groupe dans lequel la forme est créée. Le tableau transmis doit être un tableau SAFEARRAY avec des valeurs à virgule flottante de 8 octets transmises par référence (VT_R8|VT_ARRAY|VT_BYREF). C'est ainsi que Microsoft Visual Basic transmet des tableaux aux objets Automation.
Le degré d'erreur entre les points et le chemin de la forme obtenue est plus ou moins dans les limites de la tolérance. Lorsque le nombre de points est important, l'erreur peut parfois excéder la tolérance indiquée.
Le paramètre Indicateurs est un masque binaire définissant les options de dessin de la nouvelle forme. Sa valeur est zéro ou une combinaison d'une ou plusieurs des valeurs suivantes.
Constante | Valeur |
---|---|
visSplinePeriodic | 1(&H1) |
visSplineDoCircles | 2(&H2) |
visSplineAbrupt | 4(&H4) |
visSpline1D | 8(&H8) |
Si Indicateurs comprend la valeur visSplinePeriodic et si les conditions suivantes sont remplies, Visio tente de tracer une spline régulière. Dans le cas contraire, Visio trace une spline irrégulière :
Le dernier point doit correspondre au premier.
Si l'indicateur visSplineAbrupt est également inclus, l'intégralité du chemin fermé défini par les points ne doit comporter ni courbure ni changement de direction brusque.
Si Indicateurs comprend la valeur visSplineDoCircles, Microsoft Visio reconnaît les segments circulaires de la disposition de points fournie et génère des arcs circulaires et non des lignes de spline pour ces segments.
Si Indicateurs comprend la valeur visSplineAbrupt, Visio casse la spline dès qu'il détecte un changement brusque de courbure ou de direction dans la piste du point. Un changement brusque de direction est défini par trois points consécutifs A, B, C dans la liste, pour lesquels la distance entre le point B et le segment de trait AC est plus de deux fois la valeur de tolérance. L'application considère également le point B comme un changement brusque si l'un des segments AB ou BC est plus de deux fois plus long que l'autre. À l'endroit où un changement brusque est détecté, l'application termine la partie active (trait, arc ou spline) et en débute une nouvelle.
Si Flags inclut visSpline1D et que le premier et le dernier point dans xyArray() ne coïncident pas, la méthode DrawSpline produit une forme qui a un comportement unidimensionnel (1D). Sinon, elle produit une forme qui a un comportement bidimensionnel (2D).
Si le premier et le dernier point du tableau TableauXY() coïncident, la méthode DrawSpline génère une forme pleine.
Exemple
L'exemple suivant indique comment dessiner une spline régulière tout en passant par cinq points arbitraires et en faisant en sorte que la spline s'approche à moins de 6 mm (dessin) de chaque point. Visio peut ainsi débuter de nouveaux segments dans le chemin de la nouvelle forme à des points considérés comme brusques.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.