Shape. DrawSpline メソッド (Visio)Shape.DrawSpline method (Visio)

指定された連続するポイントに沿ったパスによって、新しい図形を作成します。Creates a new shape whose path follows a given sequence of points.

構文Syntax

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

Shape オブジェクトを表す変数を取得します。expression A variable that represents a Shape object.

パラメーターParameters

名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
xyArray ()xyArray() 必須Required DoubleDouble 新しい図形のパス内のポイントを定義する_x_と_y_の値が交互に表された配列です。An array of alternating x and y values that define points in the new shape's path.
ToleranceTolerance 必須Required DoubleDouble 新しい図形のパスが、指定されたポイントにどれだけ近似するかを示す許容誤差です。How closely the path of the new shape must approximate the given points.
FlagsFlags 必須Required 整数型 (Integer)Integer 図形の描画方法を制御するフラグです。Flags that influence how the shape is drawn.

戻り値Return value

ShapeShape

注釈Remarks

Drawsplineメソッドは、指定したポイントの配列の許容誤差の範囲内にあるパスを持つ新しい図形を作成します。The DrawSpline method creates a new shape whose path falls within the given tolerance of the given array of points. 指定したポイントに完全に一致させるには、許容誤差をゼロ (0) に指定します。To fit the given points exactly, specify a tolerance of zero (0). 通常 DrawSpline メソッドは、ポイントを通るスプラインのセグメントを作成しますが、新しい図形に線または円弧のセグメントを作成する場合もあります。Typically, the DrawSpline method fits spline segments through the points, but it sometimes produces line or circular arc segments in the new shape.

コントロール ポイントと許容誤差は、内部図面単位 (インチ) で表し、新しい図形を作成するページ、マスター シェイプ、またはグループの座標空間を基準とします。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. 渡される配列の種類は、参照渡しで SAFEARRAY 型の 8 バイト浮動小数点値にする必要があります (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). Microsoft Visual Basic では、この方法でオートメーション オブジェクトに配列を渡します。This is how Microsoft Visual Basic passes arrays to Automation objects.

ポイントと作成される図形のパスとの誤差は、許容誤差の範囲内に収まります。The error from the points to the path of the resulting shape is roughly within tolerance. ポイントの数が多い場合、実際の誤差は指定されている許容誤差を超えることがあります。When the number of points is large, the actual error may sometimes exceed the prescribed tolerance.

_Flags_パラメーターは、新しい図形を描画するためのオプションを指定するビットマスクです。The Flags parameter is a bitmask that specifies options for drawing the new shape. この引数には、ゼロまたは次の値の組み合わせを指定します。Its value should be zero or a combination of one or more of the following values.

定数Constant Value
visSplinePeriodicvisSplinePeriodic 1 (&H1)1(&H1)
visSplineDoCirclesvisSplineDoCircles 2 (&H2)2(&H2)
visSplineAbruptvisSplineAbrupt 4 (&H4)4(&H4)
visSpline1DvisSpline1D 8 (&H8)8(&H8)

_Flags_にVissplineperiodic 処理が含まれており、次の条件が満たされている場合、アプリケーションは定期的なスプラインを描画しようとします。If Flags includes visSplinePeriodic and the following conditions are met, the application attempts to draw a periodic spline. それ以外の場合は、非連続スプラインが描画されます。Otherwise, Visio draws a non-periodic spline:

  • 最後のポイントが最初のポイントの繰り返しになっている。The last point must be a repetition of the first one.

  • フラグVissplineabrupt指定されている場合は、ポイントで指定されているクローズパス全体に、方向と曲率の急激な変化がないことが必要です。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.

_Flags_にvisSplineDoCirclesが含まれている場合は、指定された配列内の循環セグメントが認識され、それらのセグメントに対して、スプライン行ではなく円弧が生成されます。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.

_Flags_にVissplineabrupt含まれている場合、その点の軌跡で方向または曲率の急激な変化が検出されると、そのスプラインは自動的に中断されます。If Flags includes visSplineAbrupt, Visio breaks the spline whenever it detects an abrupt change of direction or curvature in the point's trail. 方向の急激な変化は、リスト内の連続する 3 つのポイント A、B、C によって定義され、B と線分 AC 間の距離が許容誤差の 2 倍を超える場合です。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. また、線分 AB または BC のどちらかがもう一方の長さの 2 倍を超える場合も、ポイント B で急激な変化があったと見なされます。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. 急激な変化が検出されたポイントで、現在の線分 (線、円弧、またはスプライン) が終了し、新しい線分が開始されます。At a point where an abrupt change is detected, the application ends the current piece (line, arc, or spline) and starts a fresh one.

_Flags_にvisSpline1Dが含まれていて、 xyArray () の最初と最後のポイントが一致しない場合、 Drawsplineメソッドは1次元 (1d) の動作を持つ図形を生成します。それ以外の場合は、2次元 (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.

XyArray () の最初のポイントと最後のポイントが一致する場合は、 drawsplineメソッドによって塗りつぶされた図形が生成されます。If the first and last points in xyArray() do coincide, the DrawSpline method produces a filled shape.

Example

次の例では、5つの任意のポイントを使用して定期的なスプラインを描画する方法を示しています。これには、各点の 0.25 (図面) インチ以内にスプラインアプローチを指定する必要があります。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. これにより、新しい図形のパスで新しいセグメントを開始することができます。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 and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.