13.07.2015 Views

Manual de Apoio 2010

Manual de Apoio 2010

Manual de Apoio 2010

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A curva da Figura 10.10b é uma curva quadrática (2 pontos <strong>de</strong> controlo) e a curva da Figura 10.10c é umacurva cúbica (3 pontos <strong>de</strong> controlo). Estas últimas são as mais utilizadas.10.2.3 Continuida<strong>de</strong>Quando duas curvas lado-a-lado partilham um ponto (breakpoint), formam uma secção curva (Figura 10.11). Aforma como as curvas se encontram <strong>de</strong>fine a continuida<strong>de</strong> da secção. As categorias <strong>de</strong> continuida<strong>de</strong> são:• none - Quando as curvas não se encontram <strong>de</strong> todo• positional (C0) - As curvas encontram-se num ponto• tangetial (C1) - As curvas partilham a mesma tangente no breakpoint• curvature (C2) - Para além <strong>de</strong> partilharem a mesma tangente, a aproximação à tangente é semelhante nasduas curvasFigura 10.11: Continuida<strong>de</strong> <strong>de</strong> CurvasOs tipos <strong>de</strong> continuida<strong>de</strong> mais utilizados, quando estamos a juntar um gran<strong>de</strong> conjunto <strong>de</strong> curvas, são os tipotangential e curvature.10.2.4 EvaluatorsO OpenGL fornece uma forma simples <strong>de</strong> <strong>de</strong>senhar curvas e superfícies <strong>de</strong> Bézier. Para tal, especificamos ospontos <strong>de</strong> controlo e o domínio dos valores paramétrics u e v. Finalmente ao invocar o evaluator apropriado, oOpenGL gera os pontos que <strong>de</strong>finem a curva ou superfície.Uma curva 2DO programa Bezier2D.java (ver Apêndice C.7), mostra como po<strong>de</strong> ser <strong>de</strong>senhada uma curva <strong>de</strong> Bézier 2D.A melhor forma <strong>de</strong> explicar o programa passa pela explicação <strong>de</strong> cada bloco <strong>de</strong> código.Começamos por <strong>de</strong>finir uma perspectiva ortogonal entre +10 e -10, a fim <strong>de</strong> facilitar a visualização:gl. glMatrixMo<strong>de</strong> ( GL2 . GL_PROJECTION );gl. glLoadI<strong>de</strong>ntity ();glu . gluOrtho2D ( -10f, 10f, -10f, 10f);Criamos os pontos <strong>de</strong> controlo com recurso à classe GLVectorList:// Definir Pontos <strong>de</strong> ControloctrlPoints = new GLVectorList ();ctrlPoints . add ( -4f, 0f, 0f); // StartctrlPoints . add ( -6f, 4f, 0f); // Control106

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!