hz rabotaet

This commit is contained in:
Elizaveta Chirkova 2025-09-09 17:46:35 +05:00
parent 378e9cb979
commit f81baf7f3e
5 changed files with 52 additions and 28 deletions

View file

@ -17,7 +17,6 @@ namespace ComputerGraphicsLab2
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
@ -40,6 +39,8 @@ namespace ComputerGraphicsLab2
this.glControl1.Size = new System.Drawing.Size(776, 426); this.glControl1.Size = new System.Drawing.Size(776, 426);
this.glControl1.TabIndex = 0; this.glControl1.TabIndex = 0;
this.glControl1.VSync = false; this.glControl1.VSync = false;
this.glControl1.Load += new System.EventHandler(this.glControl1_Load);
this.glControl1.Paint += new System.Windows.Forms.PaintEventHandler(this.glControl1_Paint);
// //
// Form1 // Form1
// //
@ -48,13 +49,13 @@ namespace ComputerGraphicsLab2
this.ClientSize = new System.Drawing.Size(800, 450); this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.glControl1); this.Controls.Add(this.glControl1);
this.Name = "Form1"; this.Name = "Form1";
this.Text = "Form1"; this.Text = "OpenGL Triangle";
this.Load += new System.EventHandler(this.Form1_Load); this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false); this.ResumeLayout(false);
} }
private OpenTK.GLControl glControl1;
#endregion #endregion
private OpenTK.GLControl glControl1;
} }
} }

View file

@ -1,19 +1,14 @@
using System; using System;
using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using OpenTK; using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL; using OpenTK.Graphics.OpenGL;
using OpenTK.Input;
using System.Drawing;
using BeginMode = OpenTK.Graphics.OpenGL.BeginMode;
using ClearBufferMask = OpenTK.Graphics.OpenGL.ClearBufferMask;
using GL = OpenTK.Graphics.OpenGL.GL;
namespace ComputerGraphicsLab2 namespace ComputerGraphicsLab2
{ {
public partial class Form1 : Form public partial class Form1 : Form
{ {
private int CubeSize = 128; private bool glLoaded = false;
public Form1() public Form1()
{ {
@ -22,27 +17,55 @@ namespace ComputerGraphicsLab2
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
{ {
var width = 512; // Форма загружена
var height = 512;
var left = (width - CubeSize) / 2;
var right = left + CubeSize;
var bottom = (height - CubeSize) / 2;
var top = bottom + CubeSize;
GL.ClearColor(Color.White);
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Color3(255, 0, 0);
GL.Begin(BeginMode.Quads);
GL.Vertex2(left, bottom);
GL.Vertex2(left, top);
GL.Vertex2(right, bottom);
GL.Vertex2(right, top);
GL.End();
} }
private void glControl1_Load(object sender, EventArgs e) private void glControl1_Load(object sender, EventArgs e)
{ {
glLoaded = true;
// Настройка OpenGL
GL.ClearColor(Color.White);
GL.Enable(EnableCap.DepthTest);
// Настройка viewport
GL.Viewport(0, 0, glControl1.Width, glControl1.Height);
// Настройка проекции
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
GL.Ortho(-2.0, 2.0, -2.0, 2.0, -1.0, 1.0);
GL.MatrixMode(MatrixMode.Modelview);
GL.LoadIdentity();
// Принудительная перерисовка
glControl1.Invalidate();
}
private void glControl1_Paint(object sender, PaintEventArgs e)
{
if (!glLoaded) return;
// Очистка экрана
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
// Рисование треугольника
GL.Begin(PrimitiveType.Triangles);
GL.Color3(1.0f, 0.0f, 0.0f); // красная вершина
GL.Vertex2(-1.0f, -1.0f);
GL.Color3(0.0f, 1.0f, 0.0f); // зеленая вершина
GL.Vertex2(1.0f, -1.0f);
GL.Color3(0.0f, 0.0f, 1.0f); // синяя вершина
GL.Vertex2(0.0f, 1.0f);
GL.End();
// Отображение результата
glControl1.SwapBuffers();
} }
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.