Método Shape.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 Shape .
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.