wglMakeCurrent ( Canvas.Handle , hrc );
glClearColor ( col1 , 0.5 , 0.7 , 1.0 );
glClear ( GL_COLOR_BUFFER_BIT );
glPushMatrix;
glFrustum(-1,1,-1,1,3,10);
glTranslatef(0,0,-4);
if (d > 0.79) and (d < 0.81) then d2 := -0.01;
if (d1 > 0.79) and (d1 < 0.81) then d3 := -0.02;
if (d < -0.79) and (d > -0.81) then d2 := 0.01;
if (d1 < -0.79) and (d1 > -0.81) then d3 := 0.02;
d := d + d2;
d1 := d1 + d3;
glPointSize ( 7 );
glColor3f ( col1,col4,col3 );
glBegin ( GL_POINTS );
glVertex3f ( d , d1,0 );
glEnd;
if (da > 0.79) and (da < 0.81) then da2 := -0.02;
if (da1 > 0.79) and (da1 < 0.81) then da3 := -0.01;
if (da < -0.79) and (da > -0.81) then da2 := 0.02;
if (da1 < -0.79) and (da1 > -0.81) then da3 := 0.01;
da := da + da2;
da1 := da1 + da3;
if (db > 0.77) and (db < 0.81) then db2 := -0.02;
if (db1 > 0.77) and (db1 < 0.81) then db3 := -0.03;
if (db < -0.77) and (db > -0.81) then db2 := 0.02;
if (db1 < -0.77) and (db1 > -0.81) then db3 := 0.03;
db := db + db2;
db1 := db1 + db3;
glColor3f ( col3,col2,col4 );
glPointSize ( 9 );
glBegin ( GL_POINTS );
glVertex3f ( db , db1 ,0);
glEnd;
glColor3f ( col4,col2,col3 );
glPointSize ( 5 );
glBegin ( GL_POINTS );
glVertex3f ( da , da1,0 );
glEnd;
glColor3f ( col1,col3,col2 );
glLineWidth ( 7.0 );
glBegin ( GL_LINES );
glVertex3f ( -0.8 , -0.8,0 );
glVertex3f ( -0.8 , 0.8,0 );
glEnd;
glColor3f ( col1,col3,col2);
glLineWidth ( 7.0 );
glBegin ( GL_LINES );
glVertex3f ( -0.8 , -0.8,0 );
glVertex3f ( 0.8 , -0.8,0 );
glEnd;
glColor3f ( col1,col3,col2 );
glLineWidth ( 7.0 );
glBegin ( GL_LINES );
glVertex3f ( 0.8 , 0.8,0 );
glVertex3f ( 0.8 , -0.8,0 );
glEnd;
glColor3f (col1,col3,col2 );
glLineWidth ( 7.0 );
glBegin ( GL_LINES );
glVertex3f ( -0.8 , 0.8,0 );
glVertex3f ( 0.8 , 0.8,0 );
glEnd;
glPopMatrix;
if tb then glRotatef(5,-1,0,0);
if lb then glRotatef(5,0,1,0);
if bb then glRotatef(5,1,0,0);
if rb then glRotatef(5,0,-1,0);
wglMakeCurrent (0, 0) ;