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(); }
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; } }
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(); }
// функция 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 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(); }
// функция отрисовки 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(); } }
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(); }
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(); }
private void movementObjects(object sender, EventArgs e) { speedSpace += speedSpaceStart / 150; //Скорость вращения сферы космоса и солнца totalSpeed += totalSpeedStart; //Общая скорость вращения планет rotateSpeed += rotateSpeedStart; //Общая скорость вращения планет вокруг своей оси if (chExplosion.Checked) { solS.UpdateFrameExplosion(); } AnT.Invalidate(); }
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(); }
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(); } }
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(); }
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(); }
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 }
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(); }
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(); }
//Сфера 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; }
public void Refresh() { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); cam.Look(); DrawMap(); Gl.glFlush(); AnT.Invalidate(); }
// функция рисования private void Drawing() { // очистка буфера цвета и буфера глубины Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); // очищение текущей матрицы Gl.glLoadIdentity(); // установка черного цвета Gl.glColor3f(0, 0, 0); // визуализация изображения из движка ProgrammDrawingEngine.SwapImage(); // дожидаемся завершения визуализации кадра Gl.glFlush(); // сигнал для обновление элемента, реализующего визуализацию. AnT.Invalidate(); }
private void Drawing() { //Gl.glClear(Gl.GL_COLOR_BUFFER_BIT); Gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); Gl.glColor3f(0.0f, 1.0f, 1.0f); Gl.glBegin(Gl.GL_POINTS); for (int i = 0; i < 1600; i++) { Gl.glVertex2f((float)mas[i, 0], (float)mas[i, 1]); } Gl.glEnd(); AnT.Invalidate(); }
private void AnT_Resize(object sender, EventArgs e) { GL.Viewport(0, 0, AnT.Width, AnT.Height); GL.MatrixMode(MatrixMode.Projection); GL.LoadIdentity(); //иннициализация GL.Frustum(-0.5, 0.5, -0.5, 0.5, 0.5, 65); GL.MatrixMode(MatrixMode.Modelview); Matrix4 p = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, Width / (float)Height, 0.1f, 50.0f); GL.LoadMatrix(ref p); GL.MatrixMode(MatrixMode.Modelview); Matrix4 mv = Matrix4.LookAt(Vector3.UnitZ, Vector3.Zero, Vector3.UnitY); GL.LoadMatrix(ref mv); AnT.Invalidate(); }
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(color1.BackColor); Gl.glFlush(); AnT.Invalidate(); }
private void DrawAim() { Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glPushMatrix(); Gl.glLoadIdentity(); Glu.gluOrtho2D(AnT.Width, 0, 0, AnT.Height); Gl.glMatrixMode(Gl.GL_MODELVIEW); Gl.glLoadIdentity(); Gl.glDisable(Gl.GL_CULL_FACE); Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT); Gl.glColor3f(0, 255, 0); Gl.glPushMatrix(); Gl.glDisable(Gl.GL_DEPTH_TEST); DrawAimPart((float)AnT.Width - mouseMoveY + 13f, (float)AnT.Height - mouseMoveX - 4f, "[o]"); Gl.glEnable(Gl.GL_DEPTH_TEST); Gl.glFlush(); AnT.Invalidate(); }
private void button3_Click(object sender, EventArgs e) { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3b(0, 0, 0); Gl.glPopMatrix(); Gl.glTranslated(-40, 0, -100); Gl.glRotated(45, 0, 0, 0); //Крыша Gl.glBegin(Gl.GL_TRIANGLES); Gl.glVertex2d(-20, 40); Gl.glVertex2d(30, 80); Gl.glVertex2d(90, 40); Gl.glEnd(); //Стены Gl.glBegin(Gl.GL_LINE_STRIP); Gl.glVertex2d(0, 40); Gl.glVertex2d(60, 40); Gl.glVertex2d(60, -70); Gl.glVertex2d(0, -70); Gl.glVertex2d(0, 40); Gl.glVertex2d(0, -70); Gl.glEnd(); Gl.glColor3b(40, 40, 40); //Окно Gl.glBegin(Gl.GL_QUADS); Gl.glVertex2d(20, 20); Gl.glVertex2d(40, 20); Gl.glVertex2d(40, 0); Gl.glVertex2d(20, 0); Gl.glEnd(); Gl.glPushMatrix(); Gl.glFlush(); AnT.Invalidate(); }
void Draw() { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3d(205.0 / 255.0, 92.0 / 255.0, 92.0 / 255.0); Gl.glPushMatrix(); Gl.glTranslated(0, 0, -c * 3 - a / 2 - b / 2); Gl.glRotated(90 + Zz, 1, 0, 0); Gl.glRotated(Xx, 0, 0, 1); double x = 0, y = 0, z = 0; double step_big = 0.1, step_lit = 0.03; Gl.glPolygonMode(Gl.GL_FRONT_AND_BACK, Gl.GL_LINE); for (double u = 0; u < 2 * Math.PI; u += step_big) { Gl.glBegin(Gl.GL_POLYGON); for (double v = 0; v < 2 * Math.PI; v += step_lit) { x = a * Math.Cos(u) * Math.Cos(v) + b * Math.Sin(u) * Math.Sin(v); y = a * Math.Cos(u) * Math.Sin(v) - b * Math.Sin(u) * Math.Cos(v); z = c * Math.Sin(u); Gl.glVertex3d(x, y, z); } Gl.glEnd(); } for (double v = 0; v < 2 * Math.PI; v += step_big) { Gl.glBegin(Gl.GL_POLYGON); for (double u = 0; u < 2 * Math.PI; u += step_lit) { x = a * Math.Cos(u) * Math.Cos(v) + b * Math.Sin(u) * Math.Sin(v); y = a * Math.Cos(u) * Math.Sin(v) - b * Math.Sin(u) * Math.Cos(v); z = c * Math.Sin(u); Gl.glVertex3d(x, y, z); } Gl.glEnd(); } Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); }
private void Draw() { Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glColor3i(255, 0, 0); cam.Look(); //Обновляем взгляд камеры Gl.glPushMatrix(); DrawGrid(30, 1);//Нарисуем сетку draw.Do(curTime, paused); Gl.glPopMatrix(); Gl.glFlush(); AnT.Invalidate(); }
private void triangle_Click(object sender, EventArgs e) { //произвольные точки рисуются в промежутке от координаты 0, 0 в координату 30, 30. но мы не попадем в точку правого //верхнего угла, если не скорректируем координату с учетом проекции,поэтому мы умножаем на //(float)AnT.Height / (float)AnT.Width или на (float)AnT.Width / (float)AnT.Height int glx; if ((float)AnT.Width <= (float)AnT.Height) { // рисуем вторую вершину в противоположенном углу glx = (int)(30.0f * (float)AnT.Height / (float)AnT.Width); } else { // рисуем вторую вершину в противоположенном углу glx = (int)(30.0f * (float)AnT.Width / (float)AnT.Height); } Random rnd = new Random(); float r1X = (float)(rnd.Next(0, glx)); float r2X = (float)(rnd.Next(0, glx)); float r3X = (float)(rnd.Next(0, glx)); float r1y = (float)(rnd.Next(0, 30)); float r2y = (float)(rnd.Next(0, 30)); float r3y = (float)(rnd.Next(0, 30)); float r = (float)(rnd.Next(0, 255) / 255f); float g = (float)(rnd.Next(0, 255) / 255f); float b = (float)(rnd.Next(0, 255) / 255f); Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT); Gl.glLoadIdentity(); Gl.glBegin(Gl.GL_TRIANGLES); Gl.glColor3d(r, g, b); Gl.glVertex2d(r1X, r1y); Gl.glVertex2d(r2X, r2y); Gl.glVertex2d(r3X, r3y); Gl.glEnd(); Gl.glFlush(); AnT.Invalidate(); }
public void draw_pic(ushort[] M1) { Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_LUMINANCE, cl, rw, 0, Gl.GL_LUMINANCE, Gl.GL_UNSIGNED_SHORT, M1); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR); Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR); Gl.glActiveTexture(Gl.GL_TEXTURE0); Gl.glEnable(Gl.GL_TEXTURE_2D); Gl.glBegin(Gl.GL_QUADS); Gl.glTexCoord2d(0, 0); Gl.glVertex3d(1, -1, 0); Gl.glTexCoord2d(0, 1); Gl.glVertex3d(1, 1, 0); Gl.glTexCoord2d(1, 1); Gl.glVertex3d(-1, 1, 0); Gl.glTexCoord2d(1, 0); Gl.glVertex3d(-1, -1, 0); Gl.glEnd(); Gl.glFlush(); Gl.glDisable(Gl.GL_TEXTURE_2D); AnT.Invalidate(); }
private void timer_Tick(object sender, EventArgs e) { if (!pause) { interation++; if (interation % cadr == 0) { NextInteration(); } } else if (interation % cadr != cadr - 1) { interation++; } mouse_Events(); light.MoveLight(); cam.update(); AnT.Invalidate(); }