Visio) (Master.DrawSpline 方法

會建立一個新的圖形,此圖形的路徑會跟隨一連串指定的點。

語法

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 支援與意見反應。