procedure TBForm.FormCreate(Sender: TObject);
begin
InitGL;
glClearColor(0.0, 0.0, 0.0, 1.0);
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4,@ctrlpoints[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glShadeModel(GL_SMOOTH);
{
// Remember these two if you want to use lighting:
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
}
end;
procedure TBForm.FormPaint(Sender: TObject);
var
i:integer;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glColor3f(0.0, 1.0, 0.0);
glBegin(GL_LINE_STRIP);
for i := 0 to 30 do
glEvalCoord1f(i/30.0);
glEnd;
// 下面一段代码将控制点显示为黄色的点
glPointSize(5.0);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_POINTS);
for i := 0 to 3 do
glVertex3fv(@ctrlpoints[i][0]);
glEnd;
PageFlip;
end;
procedure TBForm.FormResize(Sender: TObject);
var
w, h:integer;
begin
w := ClientWidth;
h := ClientHeight;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h) then
glOrtho(-5.0, 5.0, -5.0*h/w,5.0*h/w, -5.0, 5.0)
else
glOrtho(-5.0*w/h, 5.0*w/h, -5.0, 5.0, -5.0, 5.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
end;