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();
    }