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

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

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


 

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

78437. Дослідження цифрового комутаційного поля (SN) системи EWSD 402.5 KB
  Мета роботи: Вивчити принципи побудови зєднувальних шляхів в ЦКП системи EWSD.1 У процесі самопідготовки вивчити призначення апаратних засобів ЦСК EWSD.2 Ознайомитися з варіантами побудови КП ЦСК EWSD.
78438. Цифрова система комутації EWSD 229.5 KB
  Цифровая электронная коммутационная система EWSD. Цифровая станция EWSD: Учебное пособие по курсу Системы коммутации для студ. План лекції Структура системи EWSD.
78439. Цифрова система комутації Alcatel 1000 E-10 862.5 KB
  Ця система побудована на відкритій архітектурі, в якій функції розділені між програмними та апаратними модулями, що зв’язані жорстко визначеними інтерфейсами. Програмні та апаратні модулі повністю незалежні один від одного.
78440. Цифрова система комутації МТ-20/25 162 KB
  Для звязку з різними АТС та вузлами необхідні спеціальні комплекти зєднувальних ліній. В АТСЕ типу МТ20 25 можуть включатися наступні типи ліній: абонентські лінії; лінії таксофонів міських і міжміських; зєднувальні лінії з установчо-виробничими АТС УВАТС; лінії від кабінних комутаторів міжміських переговорних пунктів із серійним шуканням по вихідному звязку; зєднувальні лінії з іншими АТС які існують на мережі. В АТСЕ забезпечується автоматична перевірка всього обладнання вимірювання електричних параметрів...
78441. Гасіння пожеж у театрально-видовищних установах 93.5 KB
  Особливості гасіння пожежі в сценічній частині. Особливості гасіння пожежі в глядацькому залі. ВСТУП Гасіння пожеж у видовищних установах повязане з необхідністю проведення рятувальних робіт особливо під час вистав.
78442. Гасіння пожеж у дитячих дошкільних та навчальних закладах 72 KB
  Особливості розвитку пожежі у дитячих та навчальних закладах. Гасіння пожеж у дитячих дошкільних та навчальних закладах. Будівлі шкіл шкілінтернатів та інших навчальних закладів будують з неспалимих матеріалів і П ступенів вогнестійкості висотою 35 поверхів.
78443. Гасіння пожеж у лікувальних закладах 75 KB
  Оперативнотактична характеристика лікувальних закладів Обстановка на пожежах у лікарнях зумовлюється конструкційними особливостями плануванням та ступенем вогнестійкості будівель горючим завантаженням а також наявністю великої кількості хворих людей різного віку їх фізичного та психічного стану. У багатоповерхових будівлях та будівлях підвищеної етажності влаштовують сходоволіфтові вузли де експлуатуються не тільки пасажирські ліфти але й ліфти для перевозу хворих на ношах операційних столах та возиках. На поверхах розміщуються...
78444. Гасіння пожеж у сільських населених пунктах 71.5 KB
  Особливості розвитку та гасіння пожеж у житловій зоні сільських населених пунктів. Вимоги безпеки праці під час гасіння. Основними вододжерелами для гасіння пожеж тут є річки ставки озера свердловини колодязі і т.
78445. Порядок розрахунку необхідної кількості сил та засобів для гасіння пожежі при недостатній кількості води 84 KB
  Способи організації подачі води при її недостатній кількості для пожежегасіння. Вихідні дані та способи організації перекачки води. Розрахунок необхідної кількості автоцистерн для організації перекачки води.