Partilhar via


Método Page.DrawBezier (Visio)

Cria uma forma cujo caminho é definido pela sequência de pontos de controle Bezier fornecida.

Sintaxe

expression. DrawBezier( _xyArray()_ , _degree_ , _Flags_ )

Expressão Uma variável que representa um objeto Page .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
xyArray() Obrigatório Double Uma matriz de valores x e y alternados que definem os pontos de controle Bezier para a nova forma.
Grau Obrigatório Integer O grau da curva Bezier.
Flags Obrigatório Integer Sinalizadores que influenciam a maneira como a forma é desenhada.

Valor de retorno

Forma

Comentários

Os parâmetros xyArray() e degree devem atender às seguintes condições:

1 <= grau<= 9

O número de pontos deve ser k * grau + 1, em que k é um inteiro positivo. Se o primeiro ponto for chamado p0 , para qualquer inteiro m entre 1 e k , p(m * grau) será considerado o último ponto de controle de um segmento Bezier, bem como o primeiro ponto de controle do próximo.

O resultado é uma curva composta que consiste em k segmentos Bezier. Os pontos de entrada de xyArray() definem os pontos de controle da curva. Se você quiser uma curva suave, verifique se os pontos p(n - 1) , pn , e p(n + 1) são co-lineares sempre que n = m * grau com um inteiro m. A curva Bezier composta é representada no aplicativo como uma B-spline com nós inteiros de multiplicity = degree.

Os pontos de controle devem estar em unidades de desenho internas (polegadas) com relação ao espaço de coordenadas da página, mestre ou grupo no qual a forma é desenhada. A matriz passada deve ser SAFEARRAY de valores de ponto flutuante de 8 bytes passados por referência (VT_R8|VT_ARRAY|VT_BYREF). É assim que o Microsoft Visual Basic passa matrizes para objetos Automation.

O argumento Flags é uma bitmask que especifica opções para desenhar a nova forma. Seu valor deve ser zero (0) ou visSpline1D (8).

Se Flags for visSpline1D e os primeiros e últimos pontos em xyArray() não coincidirem, o método DrawBezier produzirá uma forma com comportamento unidimensional (1D). caso contrário, ele produz uma forma com comportamento bidimensional (2D).

Se o primeiro e o último ponto em xyArray() coincidirem, o método DrawBezier produzirá uma forma preenchida.

Exemplo

O exemplo a seguir mostra como desenhar uma curva Bezier através de cinco pontos arbitrários na página ativa.

 
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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.