Compartilhar via


Splines de Bézier no GDI+

Uma spline de Bézier é uma curva especificada por quatro pontos: dois pontos de extremidade (p1 e p2) e dois pontos de controle (c1 e c2). A curva começa em p1 e termina em p2. A curva não passa pelos pontos de controle, porém eles funcionam como ímãs, puxando a curva em determinadas direções e influenciando o modo de inclinação da curva. A ilustração a seguir mostra uma curva de Bézier junto com seus pontos de extremidade e de controle.

Screenshot of a Bézier spline, which shows its endpoints and control points.

A curva começa em p1 e se move para o ponto de controle c1. A linha tangente da curva em p1 é a linha desenhada de p1 a c1. A linha tangente no ponto de extremidade em p2 é a linha desenhada de c2 a p2.

Desenhando splines de Bézier

Para desenhar um spline de Bézier, você precisa de uma instância da Graphics classe e um Penarquivo . A instância da classe fornece o DrawBezier método e os Pen atributos de armazenamento, como largura e cor, da Graphics linha usada para renderizar a curva. O Pen é passado como um dos argumentos para o DrawBezier método. Os argumentos restantes passados para o DrawBezier método são os pontos de extremidade e os pontos de controle. O exemplo a seguir desenha uma spline de Bézier com ponto inicial (0, 0), pontos de controle (40, 20) e (80, 150) e ponto final (100, 10):

myGraphics.DrawBezier(myPen, 0, 0, 40, 20, 80, 150, 100, 10);
myGraphics.DrawBezier(myPen, 0, 0, 40, 20, 80, 150, 100, 10)

A ilustração a seguir mostra a curva, os pontos de controle e duas linhas tangentes.

Screenshot of the Bézier spline, which shows the curve, the control points, and two tangent lines.

As splines de Bézier foram desenvolvidos originalmente por Pierre Bézier para projetos da indústria automotiva. Desde então, elas se provaram úteis em vários tipos de projeto auxiliados por computador, sendo também usadas para definir os contornos de fontes. Splines de Bézier podem gerar uma grande variedade de formas, algumas das quais são mostradas na ilustração a seguir.

Paths

Confira também