Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Построение экранного отображения каркасной модели трехмерного объекта

Автор:   •  Май 21, 2020  •  Лабораторная работа  •  9,882 Слов (40 Страниц)  •  463 Просмотры

Страница 1 из 40

МИНИСТЕРСТВО ВЫСШЕГО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУВО «Пензенский государственный университет»

кафедра САПР

Отчёт
о выполнении лабораторной работы №4
«ПОСТРОЕНИЕ ЭКРАННОГО ОТОБРАЖЕНИЯ КАРКАСНОЙ МОДЕЛИ ТРЕХМЕРНОГО ОБЪЕКТА»
по курсу «Компьютерная графика»

Вариант №2

Выполнили: ст.гр. 18ВА1
Архипкин Е.А.
   Козлова А.А.    

Проверил: Бождай А.С.

Пенза, 2020 г.

Цель работы: научиться использовать аппарат видовых, перспективных и экранных преобразований для генерации плоских проекций трехмерных объектов, представленных в виде каркасных геометрических моделей.

Задание: Тетраэдр (четырехгранник из правильных треугольников)

Геометрическое описание объекта в текстовом документе my1.txt:

[pic 1]

Изображения объекта:

[pic 2] [pic 3]

[pic 4] [pic 5]

Изображение строится на основе текстового файлу my1.txt который хранит в себе координаты вершин и соединения рёбер.

Управление:

Управление объектом осуществляется с помощью клавиш клавиатуры таких как стрелки, функциональных клавиш (f1, f2 и т.д.), а так же с помощью клавиш расположенных на цифровой клавиатуре.

Листинг:

#include "stdafx.h"

#include "KG.h"

#include 

#include 

#include 

#define MAX_LOADSTRING 100

int wmId, wmEvent;

PAINTSTRUCT ps;

HDC hdc;

HWND hWnd;

HWND butt1;

HPEN hPen;

FILE * my;

int i, j;

int c_number;        // Количество координат в структуре трехмерных координат

int links_number;                // Количество соединений

int dist = 1500;                // Расстояние от камеры до начала координат

float Pi = 3.14159265358979323846;

int flag;

int alpha;                //угол поворота

float k;                //коэффциент масштабирования

char buf[1], buf1[1], buf3[1], buf4[4];                //Перменные для вывода значений угла и коэффициента на экран

LPCWSTR str, str1, str2, str3;                //Преобразуются itoa в char

int a = 1, b = 0, c = 0, d = 1;

struct coord_3d {        // Трехмерные координаты

        float x;

        float y;

        float z;

} *coor_3d, *copycoor_3d;

struct coord_2d {        // Двумерные координаты

        float sx;

        float sy;

} *coor_2d;

struct sctlinks {        // Для построения фигуры (точки, которые нужно соединить, соединить one с two)

        int one;

        int two;

} *links;

struct sctmatrix {        // Умноженная матрица

        float x;

        float y;

        float z;

} matrix[3];

HINSTANCE hInst;                                                                

TCHAR szTitle[MAX_LOADSTRING];                                        

TCHAR szWindowClass[MAX_LOADSTRING];                        

ATOM                                MyRegisterClass(HINSTANCE hInstance);

BOOL                                InitInstance(HINSTANCE, int);

LRESULT CALLBACK        WndProc(HWND, UINT, WPARAM, LPARAM);

...

Скачать:   txt (24.6 Kb)   pdf (192.9 Kb)   docx (49.5 Kb)  
Продолжить читать еще 39 страниц(ы) »
Доступно только на Essays.club