Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет по лаб.работе

.doc
Скачиваний:
7
Добавлен:
05.09.2014
Размер:
163.33 Кб
Скачать

Федеральное агентство по образованию

Прямая соединительная линия 24

Санкт-Петербургский государственный

электротехнический университет «ЛЭТИ»

Прямая соединительная линия 23

Кафедра САПР

Самого кода лаб нет.

Отчет по лабораторным работам № 1 и № 2

Выполнил:

Группа:

Санкт-Петербург

2013

Лабораторная работа №1

В данной работе выполнено отображение трехмерной фигуры, которая описана в отдельном файле (TXT), а также получен вид сверху и спереди.

  1. Алгоритм

Файл описания фигуры хранит следующие переменные:

  1. Количество точек фигуры

  2. Координаты точек в формате XYZ

  3. Как соединять точки между собой

При запуске программы происходит чтение данных из файла «zadan1.txt» в массив koord и вывод фигуры на экран в рабочую область.

Подпрограмма вывода на экран выполнена с учетом возможности поворота фигуры на заданный угол.

alpha, beta, gamma – углы поворота в радианах. Жестко заданы внутри программы.

a:=cos(beta)*cos(alpha);

b:=-sin(alpha)*cos(beta);

c:=-sin(beta);

d:=sin(gamma)*sin(beta)*cos(alpha)+cos(gamma)*sin(alpha);

e:=cos(gamma)*cos(alpha)-sin(alpha)*sin(gamma)*sin(beta);

f:=sin(gamma)*cos(beta);

g:=cos(gamma)*sin(beta)*cos(alpha)-sin(alpha)*sin(gamma);

h:=-cos(gamma)*sin(beta)*sin(alpha)-cos(alpha)*sin(gamma);

i:=cos(gamma)*cos(beta);

Ниже приведен пример преобразования координаты x1:

x1:=round((koord[link[j].t1].x*a*sx+koord[link[j].t1].y*d*sx+koord[link[j].t1].z*g*sx+xt)/(-koord[link[j].t1].x*c*sz/z0-koord[link[j].t1].y*f*sz/z0-koord[link[j].t1].z*i*sz/z0+1-zt/z0)+Form1.image1.Width/2);

Фигура рисуется отдельными отрезками между двумя точками:

Form1.Image1.Canvas.MoveTo(x1,y1); - указываем точку начала отрезка

Form1.Image1.Canvas.LineTo(x2,y2); - рисуем линию от начала x1,y1 до конца x2,y2

  1. Интерфейс программы

Программа написана в среде Delphi 7 для операционной среды Windows. Она имеет оконный интерфейс и проста для понимания.

Общий вид программы

Ниже приведены результаты работы программы

Вид спереди

Вид сверху

Лабораторная работа №2

Т.к. программа объединена с лабораторной работой №1, то механизм вывода фигуры на экран полностью совпадает. Изменения коснулись только файла описания фигуры.

Кнопка «Исходный вид» в блоке «Лабораторная работа №2» выполняет загрузку данных фигуры из «zadan2.txt» и ее отображение. Ее можно использовать для очистки экрана от «случайных» отрезков.

Кнопка «Добавить линии» генерирует случайным образом 5 разных отрезков с выводом их на экран. Каждый отрезок изменяет цвет при пересечении заданной фигуры.

Результат работы программы