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

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

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

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

Двовимірні побудови з використанням OpenGL засобами Borland Delphi

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

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

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

Рік:
2008
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Моделювання
Група:
КН-1
Коротко про документ

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

Звіт до лабораторної роботи присвячено двовимірним побудовам з використанням OpenGL засобами Borland Delphi. Наведено код програми для візуалізації графічних примітивів та математичних залежностей.

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

  • Двовимірні побудови
  • OpenGL
  • Borland Delphi
  • Геометричне моделювання
  • Математичне моделювання
  • Програмування графіки
  • Лабораторна робота

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

  1. Завдання
  2. Текст програми
Для кого:Студенти технічних спеціальностей, викладачі та розробники
Викладачі:Викладач кафедри САПР

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

OpenGLBorland Delphiдвовимірні побудовигеометричне моделюваннявізуалізаціяграфічні примітивиTFormOpenGL контекстматематичні функції

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

Міністерство освіти і науки України Національний університет “Львівська Політехніка” кафедра САПР Звіт до лабораторної роботи № 4 по темі: “Двовимірні побудови з використанням OpenGL засобами BORLAND DELPHI” з курсу “ Геометричне моделювання у конструюванні інженерних об’єктів і систем” Львів 2008    3. ЗАВДАННЯ  4. ТЕКСТ ПРОГРАМИ Unit Unit1; interface Uses Windows, Messages, Forms, Classes, Controls, ExtCtrls, ComCtrls, StdCtrls, Dialogs, sysutils, OpenGL; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private hrc:HGLRC; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormPaint(Sender: TObject); begin wglMakeCurrent(Canvas.Handle,hrc); glViewPort (0, 0,ClientWidth,ClientHeight); glClearColor (0.95, 0.95, 0.95, 1.0); glClear (GL_COLOR_BUFFER_BIT); glColor3f (0, 0, 0); glBegin (GL_TRIANGLES); glVertex2f(-1,-1); glVertex2f(-1,1); glVertex2f(-0.1,0); glEnd; wglMakeCurrent(0,0); end; procedure SetDCPixelFormat (hdc : HDC); var pfd : TPixelFormatDescriptor; nPixelFormat : Integer; begin FillChar (pfd, SizeOf (pfd),0); nPixelFormat:= ChoosePixelFormat (hdc, @pfd); SetPixelFormat (hdc, nPixelFormat, @pfd); end; procedure TForm1.FormCreate(Sender: TObject); begin SetDCPixelFormat(Canvas.Handle); hrc:=wglCreateContext(Canvas.Handle); end; procedure TForm1.FormDestroy(Sender: TObject); Begin wglDeleteContext(hrc); End; procedure TForm1.FormPaint(Sender: TObject); begin wglMakeCurrent(Canvas.Handle,hrc); glViewPort (0, 0,ClientWidth,ClientHeight); glClearColor (1.0, 1.0, 0.9, 1.0); glClear (GL_COLOR_BUFFER_BIT); glColor3f (0, 0, 0); glBegin(GL_LINE_LOOP); glVertex2f(-1.0,0.0); glVertex2f(1.0,0.0); glEnd; glBegin(GL_LINE_LOOP); glVertex2f(0.0,-1.0); glVertex2f(0.0,1.0); glEnd; if (Form1.CheckBox1.Checked) or (Form1.CheckBox2.Checked) or (Form1.CheckBox3.Checked) or (Form1.CheckBox4.Checked) then begin if Form1.CheckBox1.Checked then begin A:=-1; glColor3f(0.65, 0, 0); krok:=(2-(-2))/20; t:=-2; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; xprev:=x; yprev:=y; while t<=2.0 do begin t:=t+krok; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; glBegin(GL_LINE_LOOP); glVertex(xprev,yprev); glVertex(x,y); glEnd; xprev:=x; yprev:=y; end; end; if Form1.CheckBox2.Checked then begin A:=0; glColor3f(0, 0.65, 0); krok:=(2-(-2))/20; t:=-2; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; xprev:=x; yprev:=y; while t<=2.0 do begin t:=t+krok; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; glBegin(GL_LINE_LOOP); glVertex(xprev,yprev); glVertex(x,y); glEnd; xprev:=x; yprev:=y; end; end; if Form1.CheckBox3.Checked then begin A:=1; glColor3f(0, 0, 0.65); krok:=(2-(-2))/20; t:=-2; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; xprev:=x; yprev:=y; while t<=2.0 do begin t:=t+krok; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; glBegin(GL_LINE_LOOP); glVertex(xprev,yprev); glVertex(x,y); glEnd; xprev:=x; yprev:=y; end; end; if Form1.CheckBox4.Checked then begin A:=3; glColor3f(0.25, 0.5, 0.75); krok:=(2-(-2))/20; t:=-2; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; xprev:=x; yprev:=y; while t<=2.0 do begin t:=t+krok; x:=2*t-sqr(t); y:=A*t-sqr(t)*t; x:=x/zoom; y:=y/zoom; glBegin(GL_LINE_LOOP); glVertex(xprev,yprev); glVertex(x,y); glEnd; xprev:=x; yprev:=y; end; end; end; wglMakeCurrent(0,0); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; end. 
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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