會建立一個新的圖形,此圖形的路徑會跟隨一連串指定的點。
語法
expression。
DrawSpline( _xyArray()_ , _Tolerance_ , _Flags_ )
運算式 代表 Master 物件的變數。
參數
| 名稱 | 必要/選用 | 資料類型 | 描述 |
|---|---|---|---|
| xyArray () | 必要 | 雙精確度 | 交替的 x 及 y 值的陣列,這些值會定義新圖形路徑中的點。 |
| Tolerance | 必要 | 雙精確度 | 新圖形的路徑必須近似於指定的點之程度。 |
| Flags | 必要 | 整數 | 會影響圖形繪製方法的旗標。 |
傳回值
圖形
註解
DrawSpline 方法會建立一個新的圖形,此圖形的路徑會在指定點的陣列之指定容錯範圍內。 若要完全符合指定的點,請指定零 (0) 的容錯值。 一般來說,DrawSpline 方法會經由這些點來連成曲線段,但是有時會在新的圖形中產生線段或圓弧線段。
控制點和公差採用內部繪圖單位,相對於要建立新圖形的頁面、主圖形或群組的座標空間 () 英吋。 傳遞的陣列應該是由參照傳遞的 8 位元組浮點值的 SAFEARRAY (VT_R8|VT_ARRAY|VT_BYREF) 。 這就是 Microsoft Visual Basic 將陣列傳遞至自動化物件的方式。
產生的圖形路徑中的點之錯誤,大約是在容錯範圍內。 當點的數目過多時,實際的錯誤有時可能會超出所規定的容錯程度。
Flags 參數是一個指定繪製新圖形之選項的位元遮罩。 其值應該為零,或是下列其中一個或多個值的組合。
| 常數 | 值 |
|---|---|
| visSplinePeriodic | 1 (&H1) |
| visSplineDoCircles | 2 (&H2) |
| visSplineAbrupt | 4 (&H4) |
| visSpline1D | 8 (&H8) |
如果 Flags 包含 visSplinePeriodic 且符合下列條件,應用程式會嘗試繪製週期性樣條線。 否則,Visio 會繪製非週期性雲條線:
最後一個點必須重複第一個點。
如果也有包含 visSplineAbrupt 旗標,則由點所描繪的整個封閉路徑不能有任何方向及彎曲度的突然變更。
如果 Flags 包括 visSplineDoCircles,則 Microsoft Visio 會在指定點的陣列中識別圓形線段,並針對這些線段產生圓弧,而不是曲線列。
如果 [旗標] 包含 visSplineAbrupt,則 Visio 會在點路徑中偵測到方向或曲率突然變更時斷開雲形線。 方向的突然改變由清單中的三個連續點 A、B、C 定義,其中 B 與線段 AC 之間的距離是容差的兩倍以上。 如果其中一段 AB 或 BC 的長度是另一段的兩倍以上,則申請還將 B 點視為突然變化。 在偵測到突然變更的點上,應用程式會結束目前的零件 (直線、圓弧或雲形) 並開始新的零件。
如果 [旗標 ] 包含 visSpline1D ,且 xyArray () 中的第一個點和最後一個點不重合, DrawSpline 方法會產生具有一維 (1D) 行為的圖形,否則會產生具有二維 (2D) 行為的圖形。
如果 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 支援與意見反應。