Contents /
Previous /
Next
Bezier Curve Example Program
private void drawBezierCurve( GL gl )
{
final int nbCtrlPoints = 4;
final int sizeCtrlPoints = nbCtrlPoints * 3;
float a = 1.0f;
float b = 0.f;
float ctrlPoints[] = {
-a, -a, 0f,
-b, +a, 0f,
+a, +a, 0f,
+b, -a, 0f
};
// Check if the ctrl points array has a legal size.
if( ctrlPoints.length != sizeCtrlPoints ) {
System.out.println("ERROR ctrlPoints\n"); };
gl.glMap1f( GL.GL_MAP1_VERTEX_3,
0.0f, 1.0f, 3, 4, ctrlPoints );
gl.glEnable( GL.GL_MAP1_VERTEX_3 );
// Draw ctrlPoints.
gl.glBegin(GL.GL_POINTS); {
for( int i=0; i < sizeCtrlPoints; i+=3 ) {
gl.glVertex3f( ctrlPoints[i],
ctrlPoints[i+1],
ctrlPoints[i+2] );
}
} gl.glEnd();
// Draw courve.
gl.glBegin(GL.GL_POINTS); {
for( float v=0; v <= 1; v += 0.01 ) {
gl.glEvalCoord1f( v );
}
} gl.glEnd();
}