Beispiel #1
0
        private void Draw()
        {
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glPopMatrix();
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            //cam.Look();

            Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
            Gl.glTranslated(a, b, c);
            Gl.glRotated(dY, 0, 1, 0);
            Gl.glRotated(dX, 1, 0, 0);
            Gl.glRotated(dZ, 0, 0, 1);
            Gl.glScaled(zoom, zoom, zoom);

            if (Model != null)
            {
                Model.DrawModel();
            }

            //Glut.glutSolidCone(2, 10, 12, 10);

            Gl.glPopMatrix();
            Gl.glFlush();
            AnT.Invalidate();
        }
Beispiel #2
0
        // функция Draw
        private void Draw()
        {
            //  Get the OpenGL object.
            OpenGL gl = AnT.OpenGL;

            // очищаем буфер цвета
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT);
            // активируем рисование в режиме GL_TRIANGLES, при котором задание
            // трех вершин с помощью функции glVertex2d или glVertex3d
            // будет объединяться в трехгранный полигон (треугольник)
            gl.Begin(OpenGL.GL_TRIANGLES);
            // устанавливаем параметр цвета, основанный на параметрах a b c
            gl.Color(a, b, c);
            //gl.Color(1.0f, 1.0f, 1.0f);
            // рисуем вершину в координатах 5,5
            gl.Vertex(5.0, 5.0);
            // устанавливаем параметр цвета, основанный на параметрах с a b
            gl.Color(c, a, b);
            // рисуем вершину в координатах 25,5
            gl.Vertex(25.0, 5.0);
            // устанавливаем параметр цвета, основанный на параметрах b c a
            gl.Color(b, c, a);
            // рисуем вершину в координатах 25,5
            gl.Vertex(5.0, 25.0);
            // завершаем режим рисования примитивов
            gl.End();
            // дожидаемся завершения визуализации кадра
            gl.Flush();
            // обновляем изображение в элементе AnT
            AnT.Invalidate();
        }
 private void trackBar2_Scroll(object sender, EventArgs e)
 {
     vanishingPointOY = trackBar2.Value;
     Ylabel.Text      = "0;" + vanishingPointOY.ToString() + ";0";
     yVanishingPoint  = 1.0f / (float)vanishingPointOY;//100 для проверки, выяснить сколько надо брать
     AnT.Focus();
 }
Beispiel #4
0
        private void Draw()
        {
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);

            Gl.glLoadIdentity();

            Gl.glPushMatrix();

            // используем параметры для установленной камеры
            Gl.glTranslated(camera[0], camera[1], camera[2]);
            Gl.glScaled(camera[6], camera[6], camera[6]);
            Gl.glRotated(camera[3], 1, 0, 0);
            Gl.glRotated(camera[4], 0, 1, 0);
            Gl.glRotated(camera[5], 0, 0, 1);

            DrawGround();
            DrawBench();
            DrawRail();
            Gl.glPushMatrix();
            Gl.glRotated(leverRotation, 0, 0, 1);
            DrawLever();
            Gl.glPopMatrix();


            Gl.glPopMatrix();
            Gl.glFlush();

            // обновляем окно
            AnT.Invalidate();
        }
Beispiel #5
0
 public fmMain(fmSplash screenform)
 {
     InitializeComponent();
     AnT.InitializeContexts(); // ініціалізація элемента SimpleOpenGLControl
     screenform.Hide();
     screenform.Dispose();
 }
 private void trackBar1_Scroll(object sender, EventArgs e)
 {
     vanishingPointOX = trackBar1.Value;
     Xlabel.Text      = vanishingPointOX.ToString() + ";0;0;";
     xVanishingPoint  = 1.0f / (float)vanishingPointOX; //100 для проверки, выяснить сколько надо брать
     AnT.Focus();
 }
Beispiel #7
0
        public Form1()
        {
            InitializeComponent();
            AnT.InitializeContexts();
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

            // очитка окна
            Gl.glClearColor(255, 255, 255, 1);

            // установка порта вывода в соотвествии с размерами элемента anT
            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();

            // настройка параметров OpenGL для визуализации
            Gl.glEnable(Gl.GL_DEPTH_TEST);


            timer1          = new Timer();
            timer1.Interval = 500;
            timer1.Tick    += NeedReDraw;
            timer1.Enabled  = true;
        }
Beispiel #8
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);

            Scene.DrawScene();

            AnT.Invalidate();

            if (keysDown[0])
            {
                Scene.CarSpeed += 0.3;
            }
            if (keysDown[1])
            {
                Scene.CarSpeed -= 0.3;
            }

            if (keysDown[2])
            {
                Scene.keyUp            = true;
                Scene.AngleFrontWheel -= 0.5;
            }
            if (keysDown[3])
            {
                Scene.keyUp            = true;
                Scene.AngleFrontWheel += 0.5;
            }
        }
        public Form1()
        {
            InitializeComponent();
            AnT.InitializeContexts();

            M = ReadFile();
        }
Beispiel #10
0
        private void Form1_Load(object sender, EventArgs e)
        {
            AnT.InitializeContexts();
            AnT.SwapBuffers();

            AnT.Load        += new EventHandler(AnT_Load);
            AnT.MouseMove   += new System.Windows.Forms.MouseEventHandler(glOnMouseMove);
            AnT.SizeChanged += new EventHandler(AnT_SizeChanged);

            AnT_SizeChanged(sender, e);

            LastTransformation.SetIdentity(); // Reset Rotation
            ThisTransformation.SetIdentity(); // Reset Rotation
            ThisTransformation.get_Renamed(matrix);

            MouseControl mouseControl = new MouseControl(AnT);

            mouseControl.AddControl(AnT);
            mouseControl.LeftMouseDown   += new MouseEventHandler(glOnLeftMouseDown);
            mouseControl.LeftMouseUp     += new MouseEventHandler(glOnLeftMouseUp);
            mouseControl.RightMouseDown  += new MouseEventHandler(glOnRightMouseDown);
            mouseControl.RightMouseUp    += new MouseEventHandler(glOnRightMouseUp);
            mouseControl.MiddleMouseDown += new MouseEventHandler(glOnMiddleMouseDown);
            mouseControl.MiddleMouseUp   += new MouseEventHandler(glOnMiddleMouseUp);

            foreach (Cube myCube in Model)
            {
                myCube.Origin    = new Cube();
                myCube.TransCube = new Cube();
                myCube.Origin.Initialize(myCube.vertices);
            }
        }
Beispiel #11
0
        public MainForm()
        {
            InitializeComponent();
            AnT.InitializeContexts();

            Icon            = Properties.Resources.icon;
            AnT.MouseWheel += new MouseEventHandler(AnT_MouseWheel);
        }
Beispiel #12
0
        public Form1()
        {
            InitializeComponent();


            // инициализация элемента SimpleOpenGLControl (AnT)
            AnT.InitializeContexts();
        }
Beispiel #13
0
        // функция отрисовки
        private void Draw()
        {
            // если текстура загружена
            if (textureIsLoad)
            {
                // увеличиваем угол поворота
                rot++;
                // корректируем угол
                if (rot > 360)
                {
                    rot = 0;
                }


                // очистка буфера цвета и буфера глубины
                Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
                Gl.glClearColor(255, 255, 255, 1);
                // очищение текущей матрицы
                Gl.glLoadIdentity();

                // включаем режим текстурирования
                Gl.glEnable(Gl.GL_TEXTURE_2D);
                // включаем режим текстурирования , указывая индификатор mGlTextureObject
                Gl.glBindTexture(Gl.GL_TEXTURE_2D, mGlTextureObject);

                // сохраняем состояние матрицы
                Gl.glPushMatrix();

                // выполняем перемещение для более наглядного представления сцены
                Gl.glTranslated(0, -1, -5);
                // реализуем поворот объекта
                Gl.glRotated(rot, 0, 1, 0);

                // отрисовываем полигон
                Gl.glBegin(Gl.GL_QUADS);

                // указываем поочередно вершины и текстурные координаты
                Gl.glVertex3d(1, 1, 0);
                Gl.glTexCoord2f(0, 0);
                Gl.glVertex3d(1, 0, 0);
                Gl.glTexCoord2f(1, 0);
                Gl.glVertex3d(0, 0, 0);
                Gl.glTexCoord2f(1, 1);
                Gl.glVertex3d(0, 1, 0);
                Gl.glTexCoord2f(0, 1);

                // завершаем отрисовку
                Gl.glEnd();

                // возвращаем матрицу
                Gl.glPopMatrix();
                // отключаем режим текстурирования
                Gl.glDisable(Gl.GL_TEXTURE_2D);

                // обновлеям элемент со сценой
                AnT.Invalidate();
            }
        }
Beispiel #14
0
        private void incomingData(string data)
        {
            //log(data); //вывод 4-х приходящих значений в лог
            List <string> ar = data.Split(':').ToList();

            if (ar.Count != 4)
            {
                return;
            }

            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT); // очищаем буфер цвета
            Gl.glLoadIdentity();                // очищаем текущую матрицу

            Gl.glColor3f(1f, 1f, 1f);
            //drawLine(-1, 0, 1, 0);
            for (int i = -100; i < 100; i++)
            {
                float color = ((i % 10) == 0) ? 0.5f : 0.1f;
                if (0 == i)
                {
                    color = 1f;
                }
                Gl.glColor3f(color, color, color);
                drawLine((float)i / 10, -1, (float)i / 10, 1);
                drawLine(-10, (float)i / 100000, 10, (float)i / 100000);
            }

            //LOG(OCR2A);LOG(":");LOG(analogRead(0));LOG(":");LOG(analogRead(1));LOG(":");LOGLN(analogRead(2));

            float aref = 5, r1 = 10000;
            float a0 = (float)Int16.Parse(ar[1]) * aref / 1024;
            float a1 = (float)Int16.Parse(ar[2]) * aref / 1024;
            float a2 = (float)Int16.Parse(ar[3]) * aref / 1024;
            float uD = a1 - a0;
            float iD = (a0 - a2) / r1;

            log("U = " + uD + "      " + " I = " + iD);

            float[] point = { uD, iD };
            points.Add(point);

            float[] prevArr = null;
            foreach (float[] curArr in points)
            {
                if (null != prevArr)
                {
                    Gl.glColor3f(1f, 0f, 0f);
                    Gl.glBegin(Gl.GL_LINE_STRIP);
                    Gl.glVertex2d(prevArr[0], prevArr[1]);
                    Gl.glVertex2d(curArr[0], curArr[1]);
                    Gl.glEnd();
                }
                prevArr = curArr;
            }

            Gl.glFlush();
            AnT.Invalidate();
        }
Beispiel #15
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     if (((Form1)this.Owner).timer1.Enabled)
     {
         ((Form1)this.Owner).parametrs.rotate += 1 * trackBar1.Value;
     }
     AnT.Refresh();
     timer1.Interval = ((Form1)this.Owner).timer1.Interval;
 }
Beispiel #16
0
        public void Draw(IDrawable o)
        {
            //Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);

            Gl.glLoadIdentity();


            Gl.glPushMatrix();
            Gl.glTranslated(0, 0, -6);
            //Gl.glRotated(45, 1, 1, 0);

            // рисуем сферу с помощью библиотеки FreeGLUT
            //Glut.glutWireSphere(2, 32, 32);
            #region backlight
            if (o.state == State.Repast._N_constant_object)
            {
                Gl.glColor3f(0, 1f, 0);
            }
            if (o.state == State.Sex._N_constant_object)
            {
                Gl.glColor3f(0, 1f, 1f);
            }
            if (o.state == State.Attack._N_constant_object)
            {
                Gl.glColor3f(1f, 1f, 0);
            }
            if (o.state == State.Kicked._N_constant_object)
            {
                Gl.glColor3f(1f, 0, 1f);
            }

            if (o.state != State.Default._N_constant_object)
            {
                //Gl.glColor3f(1f, 1f, 1f);
                Gl.glBegin(Gl.GL_QUADS);
                float boundary = 0.1f;
                Gl.glVertex2d(o.X - boundary * o.Width, o.Y - boundary * o.Width);
                Gl.glVertex2d(o.X + o.Width + boundary * o.Width, o.Y - boundary * o.Width);
                Gl.glVertex2d(o.X + o.Width + boundary * o.Width, o.Y + o.Height + boundary * o.Width);
                Gl.glVertex2d(o.X - boundary * o.Width, o.Y + o.Height + boundary * o.Width);
                Gl.glEnd();
            }


            #endregion

            Gl.glColor3f(o.R, o.G, o.B);
            Gl.glBegin(Gl.GL_QUADS);
            Gl.glVertex2d(o.X, o.Y);
            Gl.glVertex2d(o.X + o.Width, o.Y);
            Gl.glVertex2d(o.X + o.Width, o.Y + o.Height);
            Gl.glVertex2d(o.X, o.Y + o.Height);
            Gl.glEnd();
            Gl.glPopMatrix();
            Gl.glFlush();
            AnT.Invalidate();
        }
Beispiel #17
0
        void drawPoints()
        {
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);

            Gl.glLoadIdentity();
            Gl.glColor3f(255, 0, 0);

            Gl.glPointSize(4);
            Gl.glBegin(Gl.GL_POINTS);

            //Gl.glVertex2d(0, 0);

            double mnx = inf, mny = inf, mxx = -inf, mxy = -inf;

            for (int i = 0; i < nn; ++i)
            {
                if (x[i] < mnx)
                {
                    mnx = x[i];
                }
                if (x[i] > mxx)
                {
                    mxx = x[i];
                }
                if (y[i] < mny)
                {
                    mny = y[i];
                }
                if (y[i] > mxy)
                {
                    mxy = y[i];
                }
            }

            mnx -= 5;
            mny -= 5;
            mxx += 5;
            mxy += 5;

            for (int i = 0; i < nn; ++i)
            {
                if ((float)AnT.Width <= (float)AnT.Height)
                {
                    Gl.glVertex2d(30 * (x[i] - mnx) / (mxx - mnx) * (float)AnT.Height / (float)AnT.Width, 30 * (y[i] - mny) / (mxy - mny));
                }
                else
                {
                    Gl.glVertex2d(30 * (x[i] - mnx) / (mxx - mnx) * (float)AnT.Height / (float)AnT.Width, 30 * (y[i] - mny) / (mxy - mny));
                }
            }

            Gl.glEnd();

            Gl.glFlush();

            AnT.Invalidate();
        }
 private void button5_Click(object sender, EventArgs e)
 {
     Gl.glClearColor(255, 255, 255, 255);
     Gl.glColor3f(1.0f, 0, 0);
     Glut.glutWireCube(1.0f);
     Gl.glPopMatrix();
     Gl.glFlush();
     AnT.Invalidate();
 }
Beispiel #19
0
        public Form1()
        {
            InitializeComponent();


            // инициализация элемента SimpleOpenGLControl (AnT)
            AnT.InitializeContexts();
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
        }
Beispiel #20
0
 private void AnT_MouseMove(object sender, MouseEventArgs e)
 {
     if (pressed)
     {
         cmbBoxArea.SelectedIndex = 1;
         PosCam.Z = 0.5 * (lastAngleZ + (e.Y - lastMouseX) / 5);
         PosCam.X = Step * (lastPosX - (e.Y - lastMouseY) / 50 * Math.Sin(AngleZ * Math.PI / 180));
         PosCam.X = 0.7 * (lastPosY + (e.X - lastMouseY) / 50 * Math.Cos(AngleZ * Math.PI / 180));
         AnT.Invalidate();
     }
 }
Beispiel #21
0
        private void button1_Click(object sender, EventArgs e)
        {
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
            Gl.glClearColor(1, 1, 1, 1);
            X0   = AnT.Width - 5; Y0 = 3;
            step = (AnT.Width - 10) / (Math.Pow(2, level) - 1);
            Draw_Fractal(ref newX, level);

            Gl.glFlush();
            AnT.Invalidate();
        }
Beispiel #22
0
 private void movementObjects(object sender, EventArgs e)
 {
     speedSpace  += speedSpaceStart / 150; //Скорость вращения сферы космоса и солнца
     totalSpeed  += totalSpeedStart;       //Общая скорость вращения планет
     rotateSpeed += rotateSpeedStart;      //Общая скорость вращения планет вокруг своей оси
     if (chExplosion.Checked)
     {
         solS.UpdateFrameExplosion();
     }
     AnT.Invalidate();
 }
        private void Draw()
        {
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            float[] m = new float[] { 1, 0, 0, xVanishingPoint, 0, 1, 0, yVanishingPoint, 0, 0, 1, 0, 0, 0, 0, 1 };
            Gl.glLoadMatrixf(m);
            Gl.glOrtho(-6, 6, -6, 6, -10, 50);
            //Gl.glOrtho(-(double)AnT.Width, (double)AnT.Width, -(double)AnT.Height, (double)AnT.Height, -10, 10);
            //Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 2, 200);

            Glu.gluLookAt(Xcam, Ycam, Zkam, Xpoint, Ypoint, Zpoint, 0, 1, 0);

            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
            Gl.glClearColor(255, 255, 255, 1);
            Gl.glLoadIdentity();
            Gl.glPushMatrix();
            Gl.glTranslated(a, b, c);
            Gl.glRotated(d, 0, 1, 0);
            Gl.glRotated(d, 1, 0, 0);
            Gl.glRotated(d, 0, 0, 1);
            //Gl.glRotated(d, os_x, os_y, os_z);
            Gl.glScaled(zoom, zoom, zoom);

            switch (FigureChanger.SelectedIndex)//тетраэдр гексаэдр октаэдр
            {
            case 0:
            {
                Glut.glutWireTetrahedron();
            }
            break;

            case 1:
            {
                Glut.glutWireCube(1);
            }
            break;

            case 2:
            {
                Glut.glutWireOctahedron();
            }
            break;
            }
            Gl.glPopMatrix();
            Gl.glFlush();
            AnT.Invalidate();
        }
Beispiel #24
0
 private void button1_Click(object sender, EventArgs e)
 {
     Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
     Gl.glLoadIdentity();
     Gl.glColor3f(0, 0, 128);
     Gl.glPushMatrix();
     Gl.glTranslated(0, 0, -6);
     Gl.glRotated(45, 1, 1, 0);
     Glut.glutWireSphere(2, 32, 32);
     Gl.glPopMatrix();
     Gl.glFlush();
     AnT.Invalidate();
 }
Beispiel #25
0
        float [] fogColor = { 0.5f, 0.5f, 0.5f, 1.0f };           // Цвет тумана

        #endregion

        #region Запуск

        public Form1()
        {
            InitializeComponent();

            CreateField();

            AnT.InitializeContexts();

            InitGL();

            ResizeViewport(AnT.Width, AnT.Height);

            LoadShaders();
        }
Beispiel #26
0
        public void DrawNet()
        {
            Gl.glLineWidth(1);


            //Х
            for (int ax = -16; ax <= 14; ax += 2)
            {
                Gl.glBegin(Gl.GL_LINES);
                Gl.glColor3f(0, 0, 0);
                Gl.glVertex2f(-0.5f, ax);
                Gl.glVertex2f(0.5f, ax);

                Gl.glEnd();
                PrintText2D(ax, -1.5f, ax.ToString());
            }

            //У
            for (int ax = 16; ax >= -14; ax -= 2)
            {
                Gl.glBegin(Gl.GL_LINES);
                Gl.glColor3f(0, 0, 0);
                Gl.glVertex2f(ax, -0.5f);
                Gl.glVertex2f(ax, 0.5f);
                Gl.glEnd();
                PrintText2D(-1.5f, ax, ax.ToString());
            }

            // завершуємо малювати примітиви


            // режим малювання, обєднуєм в лінію кожні 2 точки



            // завершуємом режим малювання


            // виводимо написи на графіках
            //PrintText2D(-6.7f, 1.0f, "-PI");
            //PrintText2D(11.5f, 1.0f, "2PI");



            // очікуємо завершення візуалізації кадра
            Gl.glFlush();

            // сигнал для оновлення елемента
            AnT.Invalidate();
        }
Beispiel #27
0
 //Сфера
 private void timer3_Tick(object sender, EventArgs e)
 {
     Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
     Gl.glLoadIdentity();
     Gl.glColor3b(120, 255, 120);
     Gl.glPushMatrix();
     Gl.glTranslated(0, 0, -12);
     Gl.glRotated(60 + p, 10, 12, -5);
     Glut.glutWireSphere(2, 32, 32);// рисуем сферу с помощью библиотеки FreeGLUT
     Gl.glPopMatrix();
     Gl.glFlush();
     AnT.Invalidate();
     p += 10;
 }
Beispiel #28
0
        public Form1()
        {
            InitializeComponent();
            AnT.InitializeContexts();

            console = new Console();
            console.Show();

            OpenGl.Init(AnT);                           //инициализировать openGl
            OpenGl.ScreenMode(this, AnT, false);        //установить оконный режим

            //событие на движение колесика мышки
            this.MouseWheel += new MouseEventHandler(this.Form1_Wheel);
        }
Beispiel #29
0
 private void Drawing()                                           // функція прорисовки
 {
     Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); // очистка буфера кольору і глибини
     Gl.glLoadIdentity();                                         // очистка поточної матриці
     Gl.glColor3f(0, 0, 0);                                       // установка черного кольору
     ProgrammDrawingEngine.SwapImage();                           // візуалізація зображення
     ProgrammDrawingEngine.SetColor(DrawColor);
     if (miViewXY.Checked)
     {
         TextXY(Mouse_X + 8f, Mouse_Y + 12f, "[" + (Mouse_X).ToString() + ";" + (Mouse_Y).ToString() + "]");
     }
     Gl.glFlush();     // чекаємо завершення візуалізації кадра
     AnT.Invalidate(); // оновлення SimpleOpenGLControl
 }
Beispiel #30
0
 void sphere()
 {
     Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
     Gl.glLoadIdentity();
     Gl.glColor3f(0f, 0, 0);
     Gl.glPushMatrix();
     Gl.glTranslated(0, 0, -6);
     Gl.glRotated(45, 1, 1, 0);
     // рисуем сферу с помощью библиотеки FreeGLUT
     Glut.glutWireSphere(2, 32, 32);
     Gl.glPopMatrix();
     Gl.glFlush();
     AnT.Invalidate();
 }