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

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

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

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

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

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

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

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

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

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

Звіт до лабораторної роботи присвячено двомірним побудовам з використанням бібліотеки OpenGL мовою C++. У роботі наведено текст програми та висновки щодо опанування графічних функцій.

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

  • Комп'ютерна графіка
  • OpenGL
  • Мова програмування C++
  • Геометричне моделювання
  • Візуалізація
  • Графічні примітиви

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

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

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

OpenGLC++двомірні побудовиграфічна бібліотекавікно виведенняанімаціякоординатигеометричне моделюваннялабораторна робота

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР ЗВІТ до лабораторної роботи №4 на тему: “ ДВОМІРНІ ПОБУДОВИ З ВИКОРИСТАННЯМ OpenGL ЗАСОБАМИ МОВИ C++” з курсу: « Геометричне моделювання у конструюванні інженерних обєктів та систем »  Основні теоретичні відомості     Текст програми: #include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include <math.h> #include <stdio.h> #define pi 3.14159265 const int minX = 0, minY = 0, maxX = 26, maxY = 10; static bool state = true; void CALLBACK resize(int width,int height) { glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(minX,maxX, minY,maxY, 2,12); gluLookAt( 0,0,5, 0,0,0, 0,1,0 ); glMatrixMode( GL_MODELVIEW ); } void drawRound(double left, double top, float radius, float rL, float gL, float bL) { float tmpY=0; float tmpX=0; float step = radius/(10*radius); glBegin(GL_LINE_LOOP); for(float i = -radius; i<=radius; i+=step) { glColor3f(rL,gL,bL); tmpY = sqrt(pow(radius,2)-pow(i,2)); glVertex2d(left+i, top+tmpY); } for(float i = radius; i>=-radius; i-=step) { tmpY = -sqrt(pow(radius,2)-pow(i,2)); glVertex2d(left+i, top+tmpY); } glEnd(); glFlush(); } void drawStar(double left, double top, double radiusB, double radiusS, int count, float rL, float gL, float bL, float rF, float gF, float bF) { float mainAngle = 2*pi/count; float smallAngle = mainAngle/2; glLineWidth(1); drawRound(left, top, radiusB, rL,gL,bL); glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); glBegin(GL_POLYGON); for(int i = 0; i<count; i++) { glColor3f(rL,gL,bL); glVertex2f(left,top); glVertex2f(left+radiusB*sin(i*mainAngle),top+radiusB*cos(i*mainAngle)); glVertex2f(left+radiusS*sin((2*i+1)*smallAngle),top+radiusS*cos((2*i+1)*smallAngle)); } glEnd(); glPolygonMode(GL_FRONT_AND_BACK,GL_FILL); glBegin(GL_POLYGON); for(int i = 0; i<count; i++) { glColor3f(rF, gF, bF); glVertex2f(left,top); glVertex2f(left+radiusB*sin(i*mainAngle),top+radiusB*cos(i*mainAngle)); glVertex2f(left+radiusS*sin((2*i-1)*smallAngle),top+radiusS*cos((2*i-1)*smallAngle)); } glEnd(); glFlush(); } void CALLBACK display(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); drawStar(5,5,3,1,5,0.0,0.5,1.0,1.0,0.5,0.0); drawStar(13,5,3,2,6,0.0,0.5,1.0,1.0,0.5,0.0); drawStar(21,5,3,2,8,0.0,0.5,1.0,1.0,0.5,0.0); auxSwapBuffers(); } void main() { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1}; auxInitPosition( 50, 50, 800, 300); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( (LPWSTR)"[ім’я автора приховано] - OpenGL" ); auxIdleFunc(display); auxReshapeFunc(resize); glEnable(GL_ALPHA_TEST); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir); auxMainLoop(display); } Результат роботи програми:  Висновок: На даній лабораторній роботі я ознайомився та практично освоїв технології та основи роботи з графічними можливостями бібліотеки OpenGL на площині в середовищі Windows. Вивчив особливості підключення бібліотек при розробці програмних проектів. Ознайомився та засвоїв основні графічні функції, набув практичних навиків програмування графіки.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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