예제 #1
0
        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);
        }
예제 #2
0
        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();
        }