DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Робота з графікою. Лабораторна робота № 2

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Об’єктно-орієнтоване програмування
Група:
КН-11
Коротко про документ

Про що ця робота

У лабораторній роботі досліджено створення графічних компонентів у середовищі Delphi із використанням OpenGL. Розроблено програмний код для обертання та відображення 3D-об'єктів.

У роботі розглядаються

  • Об'єктно-орієнтоване програмування
  • Комп'ютерна графіка
  • Програмування в Delphi
  • Використання OpenGL
  • Створення 3D-об'єктів
  • Обробка подій та таймери

Зміст і розділи

  1. Текст програми
  2. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають об'єктно-орієнтоване програмування та комп'ютерну графіку.
Викладачі:Не вказано

Ключові поняття

DelphiOpenGLграфічні примітивианімаціябуфер кадруконтекст відтворенняобробка подійпрограмний код

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  РОБОТА З ГРАФІКОЮ Лабораторна робота № 2 з дисципліни " Об‘єктно орієнтоване програмування" Текст програми: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, OpenGL, Glaux, DGlut, StdCtrls; type GLObject = (SolidICOSAHEDRON); TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: mc:array[1..3]of GLFloat; DC : HDC; hrc: HGLRC; Angle : GLfloat; i: integer; procedure DrawScene(Tx, Ty, Tz, Angle, Rx, Ry, Rz, Red, Green, Blue : GLdouble; MyObject : GLObject); procedure SetDCPixelFormat; public { Public declarations } end; var Form1: TForm1; MyObject : GLObject; implementation procedure TFOrm1.DrawScene(Tx, Ty, Tz, Angle, Rx, Ry, Rz, Red, Green, Blue : GLdouble; MyObject : GLObject); begin glRotatef(Angle, Rx, Ry, Rz); glTranslated(Tx,Ty,Tz); glColor3d(Red,Green,Blue); case MyObject of SolidIcosahedron : auxSolidIcosahedron (2); end; end; {$R *.dfm} procedure OutText (txt : PChar); begin glPushAttrib(GL_ALL_ATTRIB_BITS); glListBase(1000); glCallLists(Length (txt), GL_UNSIGNED_BYTE, txt); glPopAttrib; end; procedure TForm1.FormCreate(Sender: TObject); const pos : Array [0..3] of GLFloat = (3.0, 3.0, 3.0, 1.0); dir : Array [0..2] of GLFloat = (-1.0, -1.0, -1.0); begin Angle := 0; DC := GetDC (Handle); SetDCPixelFormat; hrc := wglCreateContext (DC); wglMakeCurrent (DC, hrc); glMatrixMode (GL_PROJECTION); glFrustum (-1, 1, -1, 1, 1, 8); glMatrixMode (GL_MODELVIEW); wglUseFontOutlines(canvas.handle, 0, 255, 1000, 0, 0.10,WGL_FONT_POLYGONS, nil); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glLightfv(GL_LIGHT0, GL_POSITION, @pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, @dir); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); Timer1.Interval := 25; Timer1.Enabled := True; end; procedure TForm1.FormPaint(Sender: TObject); begin glClearColor (1,0.8, 0.2, 1); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glPushMatrix; DrawScene(1, 0, 1,Angle, -1, -1, 0, 0, 0.5, 1,SolidIcosahedron); glPopMatrix; SwapBuffers(DC); end; procedure TForm1.FormDestroy(Sender: TObject); begin Timer1.Enabled:=False; wglMakeCurrent(0, 0); wglDeleteContext(hrc); ReleaseDC (Handle, DC); DeleteDC (DC); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Angle := Angle + 1.0; If (Angle >= 360.0) then Angle := 0.0; InvalidateRect(Handle, nil, False); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If Key = VK_ESCAPE then Close; InvalidateRect(Handle, nil, False); end; procedure TForm1.SetDCPixelFormat; var pfd : TPixelFormatDescriptor; nPixelFormat : Integer; begin FillChar (pfd, SizeOf (pfd), 0); pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; nPixelFormat := ChoosePixelFormat (DC, @pfd); SetPixelFormat (DC, nPixelFormat, @pfd); end; end.  Висновок: На даній лабораторній роботі навчився створювати графічні компоненти у серидoвищі Delphi.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!