會建立一個新的圖形,此圖形的路徑會跟隨一連串指定的點。
語法
expression。
DrawSpline( _xyArray()_ , _Tolerance_ , _Flags_ )
expression 一個用於表示 Shape 物件的變數。
參數
| 名稱 | 必要/選用 | 資料類型 | 描述 |
|---|---|---|---|
| xyArray () | 必要 | 雙精確度 | 交替的 x 及 y 值的陣列,這些值會定義新圖形路徑中的點。 |
| Tolerance | 必要 | 雙精確度 | 新圖形的路徑必須近似於指定的點之程度。 |
| Flags | 必要 | 整數 | 會影響圖形繪製方法的旗標。 |
傳回值
圖形
註解
DrawSpline 方法會建立一個新的圖形,此圖形的路徑會在指定點的陣列之指定容錯範圍內。 若要完全符合指定的點,請指定零 (0) 的容錯值。 一般來說,DrawSpline 方法會經由這些點來連成曲線段,但是有時會在新的圖形中產生線段或圓弧線段。
控制點與公差以 (英吋為單位,相對於新形狀所建立的頁面、母版或群組的座標空間) 。 傳遞的陣列應為由參考 (VT_R8| 傳遞的 8 位元組浮點數 SAFEARRAYVT_ARRAY|VT_BYREF) 。 這就是 Microsoft Visual Basic 將陣列傳遞給自動化物件的方式。
產生的圖形路徑中的點之錯誤,大約是在容錯範圍內。 當點的數目過多時,實際的錯誤有時可能會超出所規定的容錯程度。
Flags 參數是一個指定繪製新圖形之選項的位元遮罩。 其值應該為零,或是下列其中一個或多個值的組合。
| 常數 | 值 |
|---|---|
| visSpline 週期性 | 1 (&H1) |
| visSplineDoCircles | 2 (&H2) |
| visSpline突然 | 4 (&H4) |
| visSpline1D | 8 (&H8) |
若 Flags 包含 visSplinePeriodic 且符合以下條件,應用程式會嘗試繪製週期性樣條。 否則,Visio 會繪製一個非週期性樣條:
最後一個點必須重複第一個點。
如果也有包含 visSplineAbrupt 旗標,則由點所描繪的整個封閉路徑不能有任何方向及彎曲度的突然變更。
如果 Flags 包括 visSplineDoCircles,則 Microsoft Visio 會在指定點的陣列中識別圓形線段,並針對這些線段產生圓弧,而不是曲線列。
若 Flags 包含 visSplineAbrupt,Visio 在偵測點跡方向或曲率突然改變時會斷開樣條。 方向的突然改變由列表中連續的三個點 A、B、C 定義,且 B 與線段 AC 之間的距離超過容忍的兩倍。 應用程式也認為,如果 AB 或 BC 其中一個段長超過另一個的兩倍,則該點 B 為突然變化。 當偵測到突變時,應用會結束當前 (線、弧線或樣條) ,並重新開始新片。
如果 Flags 包含 visSpline1D 且 xyArray () 的首尾兩點不重合, DrawSpline 方法會產生一個具有一維 (一維) 行為的形狀,否則會產生一個具有二維 (二維) 行為的形狀。
如果 xyArray() 中的第一個點和最後一個點一致,DrawSpline 方法會產生填滿的圖形。
範例
以下範例展示了如何透過五個任意點繪製週期性樣條,且樣條曲線必須接近於每點) 英吋 (0.25分鐘內。 它允許 Visio 在新形狀路徑中開始新段,從被認為突發的點開始。
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
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。