private void AnT_Load() { AnT.InitializeContexts(); AnT.MakeCurrent(); Gl.glViewport(0, 0, AnT.Width, AnT.Height); Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity(); Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glEnable(Gl.GL_LIGHTING); Gl.glEnable(Gl.GL_LIGHT0); }
private void DrawFig() { AnT.MakeCurrent(); double x = L * Math.Cos(ToRad(180 + ToGr(-FI))), y = L * Math.Sin(ToRad(180 + ToGr(-FI))); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glClearColor(255, 255, 255, 1); Gl.glLoadIdentity(); Gl.glPushMatrix(); Gl.glTranslated(0, AnT.Height / 30, -30); Gl.glScaled(zoom, zoom, zoom); Gl.glRotated(angle, 0, 1, 0); Gl.glBegin(Gl.GL_LINES); Gl.glVertex2d(0, -AnT.Height); Gl.glVertex2d(0, AnT.Height); Gl.glEnd(); Gl.glRotated(180, 0, 1, 0); Gl.glRotated(90, 1, 0, 0); Gl.glRotated(ToGr(-FI), 0, 1, 0); Glut.glutSolidCylinder(0.05, L, 32, 32); Gl.glRotated(-90, 1, 0, 0); Gl.glBegin(Gl.GL_LINE_STRIP); Gl.glVertex2d(0, -L); Gl.glVertex2d(0, -L + 3); Gl.glVertex2d(0.25, 2.5 - L); Gl.glVertex2d(0, 3 - L); Gl.glVertex2d(-0.25, 2.5 - L); Gl.glEnd(); Gl.glRotated(90, 1, 0, 0); Gl.glRotated(-ToGr(-FI), 0, 1, 0); Gl.glRotated(-90, 1, 0, 0); Gl.glRotated(90, 0, 0, 1); Gl.glTranslated(x, y, 0); Gl.glBegin(Gl.GL_LINE_STRIP); Gl.glVertex2d(0, 0); Gl.glVertex2d(-3, 0); Gl.glVertex2d(-2.5, 0.25); Gl.glVertex2d(-3, 0); Gl.glVertex2d(-2.5, -0.25); Gl.glEnd(); Glut.glutSolidSphere(rad, 32, 32); Gl.glRotated(-90, 0, 0, 1); Gl.glRotated(90, 0, 1, 0); PrintText2D(1f, -3, "Fmg"); Gl.glRotated(-90, 0, 1, 0); Gl.glRotated(90, 0, 0, 1); Gl.glTranslated(-x, -y, 0); //Gl.glTranslated(-3, 0.5, 0); //PrintText2D(0, 0, "Fmg"); Gl.glRotated(-90, 0, 0, 1); Gl.glRotated(90, 0, 1, 0); Gl.glRotated(-ToGr(-FI), 1, 0, 0); PrintText2D(0.5f, 3 - L, "T"); Gl.glRotated(ToGr(-FI), 1, 0, 0); Gl.glRotated(-90, 0, 1, 0); Gl.glRotated(90, 0, 0, 1); Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); }