Метод Shape.DrawBezier (Visio)

Создает фигуру, путь к которой определяется предоставленной последовательностью контрольных точек Безье.

Синтаксис

выражение. DrawBezier( _xyArray()_ , _degree_ , _Flags_ )

Выражение Переменная, представляющая объект Shape .

Параметры

Имя Обязательный или необязательный Тип данных Описание
xyArray() Обязательный Double Массив чередующихся значений x и y , определяющих контрольные точки Безье для новой фигуры.
Степени Обязательный Integer Степень кривой Безье.
Flags Обязательный Integer Флаги, влияющие на то, как рисуется фигура.

Возвращаемое значение

Shape

Примечания

Параметры xyArray() и degree должны соответствовать следующим условиям:

1 <= degree<= 9

Количество точек должно быть k* градус + 1, где k — положительное целое число. Если первая точка называется p0 , для любого целого числа m от 1 до k предполагается, что p(m * degree) является последней контрольной точкой сегмента Безье, а также первой контрольной точкой следующего.

В результате получается составная кривая, состоящая из сегментов Безье . Входные точки из xyArray() определяют контрольные точки кривой. Если требуется гладкая кривая, убедитесь, что точки p(n - 1) , pn и p(n + 1) являются солинейными всякий раз, когда n = m * degree с целым числом m. Составная кривая Безье представлена в приложении в виде B-сплайна с целыми узламикратности = градус.

Контрольные точки должны находиться во внутренних единицах рисования (дюймах) по отношению к координатам страницы, образца или группы, где рисуется фигура. Переданный массив должен быть SAFEARRAY из 8-байтовых значений с плавающей запятой, передаваемых по ссылке (VT_R8| VT_ARRAY| VT_BYREF). Таким образом Microsoft Visual Basic передает массивы в объекты службы автоматизации.

Аргумент Flags — это битовая маска, указывающая параметры для рисования новой фигуры. Его значение должно быть равно нулю (0) или visSpline1D (8).

Если флагиимеют значение 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 и обратная связь.