Отчет по лаб.работе
.docФедеральное агентство по образованию
Санкт-Петербургский государственный
электротехнический университет «ЛЭТИ»
Кафедра САПР
Самого кода лаб нет.
Отчет по лабораторным работам № 1 и № 2
Выполнил:
Группа:
Санкт-Петербург
2013
Лабораторная работа №1
В данной работе выполнено отображение трехмерной фигуры, которая описана в отдельном файле (TXT), а также получен вид сверху и спереди.
-
Алгоритм
Файл описания фигуры хранит следующие переменные:
-
Количество точек фигуры
-
Координаты точек в формате XYZ
-
Как соединять точки между собой
При запуске программы происходит чтение данных из файла «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
-
Интерфейс программы
Программа написана в среде Delphi 7 для операционной среды Windows. Она имеет оконный интерфейс и проста для понимания.
Общий вид программы
Ниже приведены результаты работы программы
Вид спереди
Вид сверху
Лабораторная работа №2
Т.к. программа объединена с лабораторной работой №1, то механизм вывода фигуры на экран полностью совпадает. Изменения коснулись только файла описания фигуры.
Кнопка «Исходный вид» в блоке «Лабораторная работа №2» выполняет загрузку данных фигуры из «zadan2.txt» и ее отображение. Ее можно использовать для очистки экрана от «случайных» отрезков.
Кнопка «Добавить линии» генерирует случайным образом 5 разных отрезков с выводом их на экран. Каждый отрезок изменяет цвет при пересечении заданной фигуры.
Результат работы программы