Поделиться через


Метод Shape.DrawPolyline (Visio)

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

Синтаксис

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

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

Параметры

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

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

Shape

Примечания

Метод DrawPolyline создает новую фигуру, путь которой состоит из последовательности сегментов линий и конечные точки которой соответствуют точкам, указанным в xyArray. Вызов метода DrawPolyline эквивалентен вызову метода DrawSpline с погрешностью нуля (0) и флагом visSplineAbrupt.

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

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

  • visPolyline1D и если первая и последняя точки в xyArray не совпадают, метод DrawPolyline создает фигуру с одномерным (1D) поведением; В противном случае создается фигура с двумерным (2D) поведением.

  • visPolyarcs, Microsoft Visio создаст последовательность дуг, а не последовательность сегментов линий; xyArray должен указать начальную точку x,y последовательности, за которой следует тройной элемент x,y bow. Visio создаст фигуру со строками EllipticalArcTo, где носовая часть дуги соответствует указанному значению.

Если первая и последняя точки в xyArray совпадают, метод DrawPolyline создает заполненную фигуру.

Пример

В следующем примере показано, как на активной странице нарисовать две полилинейные фигуры, имеющие 2D и 1D-поведение соответственно.

 
Public Sub DrawPolyline_Example() 
 
 Dim vsoShape As Visio.Shape 
 Dim adblXYPoints(1 To 8) As Double 
 Dim intCounter As Integer 
 
 'Initialize array with coordinates. 
 adblXYPoints(1) = 1 
 adblXYPoints(2) = 1 
 adblXYPoints(3) = 3 
 adblXYPoints(4) = 3 
 adblXYPoints(5) = 5 
 adblXYPoints(6) = 1 
 adblXYPoints(7) = 1 
 adblXYPoints(8) = 2 
 
 'Use the DrawPolyline method to draw a shape that has 2D behavior. 
 Set vsoShape = ActivePage.DrawPolyline(adblXYPoints, 0) 
 
 'Increase the Y-coordinate of the array by 4 to separate 
 'the next shape drawn from the first. 
 For intCounter = 2 To UBound(adblXYPoints) Step 2 
 adblXYPoints(intCounter) = adblXYPoints(intCounter) + 4 
 Next intCounter 
 
 'Use the DrawPolyline method to draw a shape that has 1D behavior. 
 Set vsoShape = ActivePage.DrawPolyline(adblXYPoints, visPolyline1D) 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.