Метод 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 и обратная связь.