Page.DrawBezier 方法 (Visio)
會建立路徑是由提供的一系列環圈控制點所定義的圖形。
語法
expression。 DrawBezier
( _xyArray()_
, _degree_
, _Flags_
)
表達 代表 Page 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
xyArray () | 必要 | 雙精確度 | 交替的 x 及 y 值的陣列,這些值會定義新圖形的環圈控制點。 |
程度 | 必要 | 整數 | 貝茲曲線度。 |
Flags | 必要 | 整數 | 會影響圖形繪製方法的旗標。 |
傳回值
圖形
註解
xyArray() 與 degree 參數必須符合下列條件:
1 < = degree< = 9
點數必須是 k * degree + 1,其中 k 是正整數。 如果第一個點稱為p0 ,則對於介於 1 和k之間的任何整數m,則會假設 p (m * 度) 為貝塞爾線段的最後一個控制點,以及下一個控制點。
結果是由 k Bezier 區段組成的複合曲線。 xyArray () 的輸入點會定義曲線的控制點。 如果您想要平滑曲線,請確定每次 n = m * 度與整數 m 時,p 點 (n - 1) 、pn和p (n + 1) 都是共線性的。 複合貝茲曲線會在應用程式中以 B 曲線表示,其整數 節 為 multiplicity = degree。
控制點的內部繪圖單位應 (英吋) ,以圖形繪製所在之頁面、主圖形或群組的座標空間為單位。 傳遞的陣列應該是參考所傳遞之 8 位元組浮點數的 SAFEARRAY (VT_R8|VT_ARRAY|VT_BYREF) 。 這是 Microsoft Visual Basic 將陣列傳遞至自動化物件的作法。
Flags 引數是一個指定繪製新圖形之選項的位元遮罩。 其值應該為零 (0) 或 visSpline1D (8)。
如果 Flags 是 visSpline1D ,而且 xyArray () 中的第一個和最後一個點不一致, DrawBezier 方法會產生具有一維 (1D) 行為的圖形;否則,它會產生具有二維 (2D) 行為的圖形。
如果 xyArray() 中的第一個點和最後一個點一致,DrawBezier 方法會產生填滿的圖形。
範例
下列範例將示範如何透過使用中頁面上的五個任意點來繪製貝茲曲線。
Public Sub DrawBezier_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-coordinates (array elements 1,3,5,7,9) to 1,2,3,4,5
adblXYPoints((intCounter * 2) - 1) = intCounter
'Set y-coordinates (array elements 2,4,6,8,10) to f(intCounter)
adblXYPoints(intCounter * 2) = (intCounter * intCounter) - (7 * intCounter) + 15
Next intCounter
Set vsoShape = ActivePage.DrawBezier(adblXYPoints, 2, visSpline1D)
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。