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

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

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

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

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

Оригінальна назва роботи

Навчитись створювати графічні компоненти у серидoвищі Delphi.

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

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

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

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

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

Ця лабораторна робота присвячена вивченню створення графічних компонентів у середовищі Delphi із застосуванням OpenGL. Документ містить програмний код для обробки та відображення тривимірної графіки.

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

  • Програмування
  • Об'єктно-орієнтоване програмування
  • Графічні компоненти
  • Delphi
  • OpenGL
  • Тривимірна графіка

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

  1. Мета
  2. Текст програми
  3. Висновок
Для кого:Студенти вищих навчальних закладів технічних спеціальностей.
Викладачі:Викладач кафедри

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

DelphiOpenGLГрафічні компонентиТекст програмиФормаТривимірна графікаПроцедураОб'єкт

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” Інститут комп’ютерних наук та інформаційних технологій Кафедра автоматизованих систем управління  Робота з графікою Лабораторна робота № 2 з дисципліни " Об‘єктно орієнтоване програмування" Львів –2008 Мета: Навчитись створювати графічні компоненти у серидoвищі Delphi. Текст програми: 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

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