511

Масштабирование и растеризация. Составление программы по алгоритму Брезенхема на языке Phyton

Курсовая

Информатика, кибернетика и программирование

Составление программы по алгоритму Брезенхема на языке Phyton. Рассмотрение координаты в ГМ и окне отображения на экране относительно левой нижней точки соответствующего окна. Рисование линий по алгоритму Брезенхема.

Русский

2013-01-06

226 KB

12 чел.

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)

Факультет Радиоэлектроники ЛА

Кафедра 404

Курсовая   работа

по  дисциплине  компьютерная графика

Вариант  № 6

Студент: Михайлов Н.

Группа: 04 - 204

Руководитель работы: Репнев Д.Н.

Оценка:

Дата:

Подпись преподавателя:

Москва   2012

Содержание:

Задание…………………………………………………………………………2

Этап №1. Масштабирование окон……………………………………………3

Этап №2. Отсечение…………………………………………………………..4

Этап №3. Масштабирование примитива…………………………………….5

Этап №4. Растеризация……………………………………………………….6

Задание.

Для отрезка, являющегося составной частью графической модели объекта (изделия),

координаты которого заданы  в мировых координатах, и заданных параметров дисплея и окна отображения выполнить операции:

−  масштабирования;

−  отсечения;

−  растеризации.

Координаты

отрезка, мм

(Х1,У1  Х2,У2)

Координаты окна

отображения в модели,

мм

(Х1м;У1м :Х2м;У2м)

Параметры

графического

режима

монитора,

(Хр;Ур)  точек

Координаты окна

отображения

модели, пикселей

(Х1о;У1о  Х2о;У2о)

2,2    0,15

0,0    10,10

32,24

5;5   15;15

Этап №1. Масштабирование окон.

Задание:

Режим графического адаптера 48*36. Отобразить окно ГМ  с координатами (Х1;У1)м:(Х2;У2)м =0,0    10,10  в окне монитора (Х1;У1)о:(Х2,У2)о =5;5   15;15

Решение:

Определим масштабные коэффициенты  по Х и У:

   К’х=∆Хо/∆Хм=(15-5)/(10-0)=10/10=1

   К’у=∆Уо/∆Ум=(15-5)/(10-0)=10/10=1

Для сохранения пропорций (равенства расстояний по Х и У) на экране коэффициенты масштабирования по Х и У должны быть одинаковы, а также требуется выбирать  минимальный  из рассчитанных коэффициентов. Т.к. коэффициенты получились одинаковыми, выбираем любой…

 Sx=Sy=Кх=Ку=1

Т.к. коэффициенты равны то расширять область отображения ГМ не нужно. 

   Х1оогм=Х1м=0    У1оогм=У1м=0

      Х2оогм=X2м=10   У2оогм=У1м= 10

Этап №2. Отсечение.

Задание:

Определить координаты отрезка (2 точки), расположенного в отображаемой области ГМ. Координаты отрезка X1;Y1=2;2    X2;Y2=0;15

Решение:

Из рисунка видно что отрезок пересекает верхнюю  границу  ООГМ в точке A c координатой по оси  ОY=10. Найдём координату точки А по оси OX:

У=А+Кп*Х; где

 Кп=∆У/∆Х=(У2-У1)/(Х2-Х1)=(13)/(-2)=-6,5

 А=У1-Кп*Х1=2-2*(-6.5)=15

 X=(Y-A)/Кп=(10-15)/(-6.5)=0.7692

 Новый отрезок , после отсечения, будет иметь координаты (X1;Y1)=2;2   (X2;Y2)=0.7692; 10

Этап №3. Масштабирование примитива.

Задание:

 Определить экранные координаты отрезка

Решение:

После отсечения  имеем отрезок с координатами  (X1;Y1)=2;2

(X2;Y2)= 0.769;10 в мировых координатах, который является отображаемой частью заданного отрезка..

Удобно рассматривать координаты в ГМ и окне отображения на экране относительно левой нижней точки соответствующего окна, что равносильно переноса начала координат в эту (левую нижнюю) точку окна. Обычно эту точку называют координатой окна или базовой точкой (координатой) окна.

Определим координаты отрезка  относительно координат окна

 Х1”=X1-X1ooгм=2-0=2

 У1”=У1-У1ooгм=2-0=2

 Х2”=X2-X1ooгм=0.769-0=0.769

 У2”=У2-У1ooгм=10-0=10

Определим экранные координаты отрезка

 Х1э=Х1”*Кх+Х1о=7

 У1э=У1”*Кх+У1о=7

 Х2э=Х2”*Кх+Х1о=7.769=8

 У2э=У2”*Кх+У1о=15

Этап №4. Рисование линий по алгоритму  Брезенхема.

Задание:

Осуществить растеризацию отрезка с координатами   с помощью целочисленного алгоритма рисования линий Брезенхема

Решение:

Для растеризации линии воспользуемся целочисленным алгоритмом Брезенхема рисования линии. Блок схема алгоритма для отрезка лежащего в 3 октанте:

Составим программу по алгоритму Брезенхема на языке Phyton:

def Proga(x1,y1,x2,y2):

 Dy=y2-y1

if Dy<0:

 Dy=Dy*(-1)

else:

 Dy=Dy

Dx=x2-x1

if Dx<0:

 Dx=Dx*(-1)

else:

 Dx=Dx

d=2*Dx-Dy

n=0

x=x1

y=y1

 print 'N', 'Yi', 'Xi', 'd', 'DX', 'DY'

print n, y, x, d, Dx, Dy

 print 'N', 'Yi', 'Xi', 'd', 'DL'

while y<y2:

 if d<0:

  DL=2*Dx

 else:

  DL=2*(Dx-Dy)

  x-=1

 d+=DL

 y+=1

 n+=1

 print n, y, x, d, DL

 print "KONEC"

Программа выведет ответ :

Proga(7, 7, 8, 15)

N Yi Xi d DX DY

0 7 7 -6 1 8

N Yi Xi d DL

1 8 7 -4 2

2 9 7 -2 2

3 10 7 0 2

4 11 6 -14 -14

5 12 6 -12 2

6 13 6 -10 2

7 14 6 -8 2

8 15 6 -6 2

KONEC

Занесём полученные данные в таблицу:

Yi

Xi

d

0

7

7

-6

1

8

7

-4

2

9

7

-2

3

10

7

0

4

11

6

-14

5

12

6

-12

6

13

6

-10

7

14

6

-8

8

15

6

-6

  Нарисуем растр экрана:

Большая синяя рамка это «экран монитора», а маленькая это окно на экране


 

А также другие работы, которые могут Вас заинтересовать

12056. ВАЛЮТНЫЕ ОПЕРАЦИИ КОМЕРЧЕСКИХ БАНКОВ (ПО МАТЕРИАЛАМ ОАО «БАНК УРАЛСИБ») 553.5 KB
  ДИПЛОМНАЯ РАБОТА Тема ВАЛЮТНЫЕ ОПЕРАЦИИ КОМЕРЧЕСКИХ БАНКОВ ПО МАТЕРИАЛАМ ОАО БАНК УРАЛСИБ СОДЕРЖАНИЕ ВВЕДЕНИЕ 1 ТЕОРЕТИЧЕСКИЕОСНОВЫ ПРОВЕДЕНИЯ ВАЛЮТНЫХ ОПЕРАЦИЙ КОММЕРЧЕСКИМИ БАНКАМИ 1.1 Понятие ва
12057. ИПОТЕКА В ГРАЖДАНСКОМ ПРАВЕ 402.5 KB
  Шелудько М. А. ИПОТЕКА В ГРАЖДАНСКОМ ПРАВЕ ОГЛАВЛЕНИЕ Введение Глава 1. Общая характеристика ипотеки по российскому гражданскому праву Понятие и основания возникновения ипотеки Предмет ипотеки Государственная регистрация ипотеки ...
12058. Кредитование юридических лиц и перспективы его развития в современных условиях (на примере Гродненского регионального отделения ОАО «Белвнешэкономбанк») 617 KB
  ДИПЛОМНАЯ РАБОТА на тему: Кредитование юридических лиц и перспективы его развития в современных условиях на примере Гродненского регионального отделения ОАО Белвнешэкономбанк ВВЕДЕНИЕ 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ОРГАНИЗАЦИИ КРЕДИТНЫХ ОТНОШЕНИЙ БАНКА С
12059. Валютная система и валютная политика России 245 KB
  ВВЕДЕНИЕ Валютная система – это совокупность двух понятий – валютного механизма и валютных отношений. Под валютным механизмом понимаются правовые нормы и институты представляющие их на национальном и международном уровнях. Валютные отношения – это повседневные свя
12060. Разработка экономического обоснования целесообразности открытия автосервиса ООО «Нижегородец» 396.5 KB
  Реферат Выпускная квалификационная работа бакалавра 51 с. 2 разд. 6 рис. 11 табл. 14 источников. БИЗНЕСПЛАН АВТОСЕРСВИС НИЖЕГОРОДЕЦ ВЫСОКИЙ УРОВЕНЬ СПРОСА АВТОМОЙКА ШИНОМОНТАЖ ИНСТРУМЕНТЫ Объектом работы является деятельность ООО Нижегородец. Целью выпускн...
12061. ДЕЙСТВУЮЩАЯ ПРАКТИКА ОРГАНИЗАЦИИ УЧЕТА ЗАРАБОТНОЙ ПЛАТЫ 978.5 KB
  СОДЕРЖАНИЕ ВВЕДЕНИЕ ГЛАВА 1. МЕТОДИЧЕСКИЕ ОСНОВЫ ОРГАНИЗАЦИИ УЧЕТА ОПЛАТЫ ТРУДА 1.1. Сущность понятие оплаты труда и ее формы 1.2. Исследование нормативной базы по оплате труда 1.3. Особенности деятельности предприятия и его учетная политика . ГЛАВА 2. ДЕЙСТВУЮ...
12062. Проблеми та перспективи розвитку валютних операцій в АКБ «Фінанси та кредит» та у банках України 411 KB
  Вступ Актуальність обраної теми полягає в тому що валютні операції банків займають важливе місце серед статей прибутку сучасного банку але питання здійснення зазначених операцій є досить складним і потребує детального вивчення. Сьогодні банк може запропонувати кл
12063. ШЛЯХИ ПІДВИЩЕННЯ ПРИБУТКОВОСТІ КОМЕРЦІЙНИХ БАНКІВ 325 KB
  ВСТУП Банківська система є важливою складовою економічної системи держави. Забезпечення стабільного прозорого функціонування банківських установ є однією з умов забезпечення конкурентоспроможності української економіки. У вітчизняній еконо
12064. НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ ДЕЯТЕЛЬНОСТИ ОАО «СБЕРЕГАТЕЛЬНОГО БАНКА» НА ВАЛЮТНОМ РЫНКЕ 450 KB
  Сделки покупки-продажи иностранной валюты Наличные сделки покупки-продажи today omorrow spot Срочные сделки покупки-продажи forward futures option swap Сделки с разрывами даты валютирования Чистая балансовая позиция Открытая валютна...