Fnfnf

  • 17 мая 2012 г.
  • 2156 Слова
Федеральное агентство по высшему образованию
Уральский Государственный Технический Университет- УПИ
Кафедра прикладной геометрии и информатики



















Отчет по УИРС
«Аффинные преобразования в пространстве»








Студентка: Коновалова Е.А.
Группа:М-34071


Преподаватель: Куррёнов Д.В.













Екатеринбург
2009

Содержание

Цель работы 3
Постановка задачи: 3
Немного теории 3
Выполнение работы 4
Листинг программы 4






































































Цельработы

Данная работа посвящена разработке приложения, выполняющего основные матричные преобразования над простейшими геометрическими объектами (куб, пирамида).

Постановка задачи:

1. Построить простейшие геометрические объекты: куб, пирамида.
2. Выполнить над ними следующие преобразования:
а) параллельный перенос;
b) поворот вокруг осей OX, OY, OZ на угол (;c) косой сдвиг относительно этих же осей;
d) масштабирование;
e) одноточечное проективное преобразование.

Немного теории

При решении задач компьютерной графики используются однородные координаты, которые можно получить заменой координатной тройки (x, y, z), задающей точку в пространстве, на четверку чисел (x y z 1) или (hx hy hz h), где h ( 0.
Предложенный переход кновому способу задания точек дает возможность воспользоваться матричной записью и в сложных трехмерных задачах.
Любое аффинное преобразование в трехмерном пространстве может быть представлено в виде суперпозиции вращений, растяжений, отражений и переносов. Поэтому вполне уместно сначала подробно описать матрицы именно этих преобразований (ясно, что в данном случае порядок матриц должен бытьравен четырем).
А. Матрицы вращения в пространстве.
Матрица вращения вокруг оси абсцисс на угол ϕ:


1 0 0 0
0. cos ϕ sin ϕ 0
0 -sin ϕ cos ϕ 0
0 0 0 1

Матрица вращения вокруг оси ординат на угол ψ:


cos ψ 0 -sin ψ 0
0 1 0 1
sin ψ 0 cos ψ 0
00 0 1
Матрица вращения вокруг оси аппикат на угол χ:


cos χ sin χ 0 0
-sin χ cos χ 0 0
0 0 1 0
0 0 0 1
Полезно обратить внимание на место знака « - » в каждой из трех приведенных матриц.
Б. Матрица масштабирования:
α 0 0 0
0 β 0 0
0 0γ 0
0 0 0 1

где α > 0 – коэффициент растяжения (сжатия) вдоль оси абсцисс;
β > 0 – коэффициент растяжения (сжатия) вдоль оси ординат;
γ > 0 – коэффициент растяжения (сжатия) вдоль оси аппликат.


В. Матрица переноса (здесь (λ, μ, ν) − вектор переноса):

1 0 0 0
0 1 0 0
0 0 1 0
λ μ ν1

Выполнение работы

Программа реализована в среде программирования Delphi7.
Пользовательский интерфейс представлен на рис.1. Его организуют такие элементы окна, как рабочая область и меню, а также панель для ввода необходимых параметров.

[pic]
Рис.1 «Окно программы»

Листинг программы

unit Unit1;

interface

uses
Windows, Messages, SysUtils,Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;...
tracking img