Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KN43_2013_Kostjo_Christian_rozrah.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.3 Mб
Скачать

Void DrawObjects()

{

{

glTranslatef(0.5, 6*sin(1.0), 0); // переміщення

drawB(); // перемалювання фігури

Sleep(200); // призупинка виконання

}

}

Int main( int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGBA); //ініціалізація графічного режиму

glutInitWindowPosition(100, 100); //розміщення вікна

glutInitWindowSize(800, 500); //розміри вікна

glutCreateWindow("Lab2_Khristian");

glutDisplayFunc(drawB); //рисування фігури

glutIdleFunc(DrawObjects); //відтворення руху фігури

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0, 300, -50, 300);

glutMainLoop();

return 0;

}

5.4.2 Віконні інтерфейси

Рис. 5.4.1. Запуск програми

Рис. 5.4.2 Результат виконання програми через певний час.

5.5. Програмні реалізація розрахунків кривих ліній, координат, кольорів

5.5.1 Опис алгоритмів

#include <math.h>

#include <stdio.h>

#include <conio.h>

Int main(void)

{

float R,R1,G,G1,B,B1,H,L,S; // Оголошення змінних

printf("Vvedit R : "); // Введення R

scanf("%f", &R);

printf("Vvedit G : "); // Введення G

scanf("%f", &G);

printf("Vvedit B : "); // Введення L

scanf("%f", &B);

S=sqrt(pow(R,2)+pow(G,2)+pow(B,2)-R*G-B*G-R*B); // Обчислення S

H=asinf(sqrt(3.0/2.0)*((G-R)/S)); // Обчислення H

L=(R+G+B)/3; // Обчислення L

R1=0.35*220+0.42*20+0.2*60; // Обчислення R`(множення матриці)

G1=0.715*220+0.06*20+0.22*60; // Обчислення B` (множення матриці)

B1=0.1156*220+0.34*20+0.54*60; // Обчислення G` (множення матриці)

R1=R1-R1*0.33; // R`-темніший на тритину

G1=G1-G1*0.33; // G`-темніший на тритину

B1=B1-B1*0.33; // B`-темніший на тритину

printf("\nZavdanie A ");

printf("\n\nZnachenie R`: "); // Вивід R`

printf("%0.2f",R1);

printf("\nZnachenie G`: "); // Вивід G`

printf("%0.2f",G1);

printf("\nZnachenie B`: "); // Вивід B`

printf("%0.2f",B1);

printf("\n\nZavdanie B (RGB - HLS)");

printf("\n\nZnachenie H: "); // Вивід H

printf("%0.2f",H);

printf("\nZnachenie L: "); // Вивід L

printf("%0.2f",L);

printf("\nZnachenie S: "); // Вивід S

printf("%0.2f",S);

getch();

}

5.5.2 Віконні інтерфейси

Рис. 5.5 Програма реалізації

Висновки

Під час виконання даної графічно-розрахункової роботи було узагальнено всі знання здобуті при проходженні курсу “Геометричне моделювання у конструюванні інженерних об’єктів і систем”.

Дана робота містить комбінаційну модель геометричного об’єкта з графічною побудовою. Каркасну модель геометричного об’єкта з графічною побудовою. Матрицю суміжності з відповідною нумерацією вершин графа та зазначенням її на графічній побудові. Матрицю інцеденції з відповідною нумерацією вершин та дуг графа та зазначенням її на графічній побудові. В цій графічно-розрахунковій роботі визначена придатність для розробки та реалізації розробленої моделі системи координат та перетворення системи координат; математичне задання класичних кривих (окружність, еліпс, гіпербола, парабола, кардіоїда тощо), які використовуються у геометричному моделюванні. Побудовано криву Без’є на основі шести вершин багатокутника, яка описує елемент геометрії об’єкта побудови. Здійснено опис визначених колірних областей об’єкту засобами колірних моделей. Здійснено перевід кольору з одної колірної моделі в іншу. Програмно реалізовано побудову кривих засобами графічних функції Windows-інтерфейса (WinAPI). Розроблено алгоритм афінних перетворень геометричних елементів об’єкту та запрограмовано анімацію і програмно реалізовано з використанням OpenGL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]