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

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

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


 

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

75375. ЛАЗЕРНЫЕ ДОПЛЕРОВСКИЕ ИЗМЕРИТЕЛИ СКОРОСТИ 58.5 KB
  В соответствии с 2 относительная методическая погрешность измерения путевой скорости по разности частот. Принципиальная схема лазерного доплеровского измерителя скорости ЛДИС с опорным лучом Расщепитель пучка Лазерный пучок Рассеянное излучение частота Требования к лазеру: Минимальное поглощение и рассеяние излучения лазера в атмосфере включая...
75376. ЛАЗЕРНЫЕ ДАЛЬНОМЕРЫ 94.5 KB
  Импульсный метод – измерение времени распространения короткого импульса лазерного излучения до объекта и обратно. Фазовый метод – измерение разности фаз у колебаний мощности модулированного лазерного излучения на выходе из источника и возвратившегося после отражения
75377. ПРИНЦИПЫ ОПТИЧЕСКОЙ БЛИЖНЕПОЛЬНОЙ МИКРОСКОПИИ 185 KB
  Соотношение неопределенностей Неопределенность координаты фотона не может быть меньше чем длина волны. Если декремент затухания сделать большим то после подстановки в 1 получается следующий результат: неопределенность координаты намного меньше длины волны.
75378. ПРИНЦИПЫ ЗАПИСИ ИНФОРМАЦИИ НА КОМПАКТ-ДИСКЕ И ЕЕ СЧИТЫВАНИЯ 281 KB
  Этапы производства оптических дисков фотолитография процесс изготовления штампа диска. Считывание информации с поверхности диска Принцип считывания информации: регистрация изменения мощности отражённого света. Различие между дисками только для чтения и дисками однократной многократной записи заключается в способе формирования питов.
75379. Преимущества оптического волокна как среды для передачи информации 225.5 KB
  Полезная ширина полосы одиночно излученного светового импульса определяется импульсной передаточной функцией рассматриваемого оптического волокна ОВ. Учитывая что оптическая ширина полосы волокна определяется импульсной передаточной функцией этого волокна можно показать что измеренная на уровне 3 дБ по мощности оптическая ширина полосы Во оценивается с помощью показателя полная ширина полосы на уровне половины от максимума...
75380. Затухание оптического излучения в волокне 167.5 KB
  Существовало две глобальных проблемы при разработке оптических систем передачи данных: 1) источник света и 2) носитель сигнала. Первая разрешилась с изобретением лазеров в 1960 году, вторая - с появлением высококачественных оптических кабелей в 1970 году
75381. ХРОМАТИЧЕСКАЯ ДИСПЕРСИЯ В ОДНОМОДОВОМ ВОЛОКНЕ И УШИРЕНИЕ ПЕРЕДАВАЕМОГО ИМПУЛЬСА 113 KB
  В полосе прозрачности 850 нм более длинные волны распространяются с большей скоростью чем короткие например излучение на длине волны 865 нм распространяется в кварцевом стекле с большей скоростью чем излучение на длине волны 835 нм. Совсем наоборот происходит в полосе прозрачности 1550 нм: более короткие длины волн распространяются с большими скоростями чем более длинные излучение с длиной волны 1535 нм распространяется быстрее чем с длиной волны 1560 нм. Спектр оптического сигнала имеет конечную ширину ...
75382. МЕЖМОДОВАЯ ДИСПЕРСИЯ В МНОГОМОДОВОМ ВОЛОКНЕ 74 KB
  Импульсы излучения для мод более высоких порядков появляются на выходе из волокна позже Траектории лучей в градиентном волокне Многомодовое волокно со ступенчатым поперечным распределением показателя преломления Групповая скорость распространения света в волокне...
75383. МЕХАНИЗМЫ ВОЗНИКНОВЕНИЯ ПОТЕРЬ ИЗ-ЗА НЕСОВЕРШЕНСТВА ВОЛОКНА 50 KB
  Главная цель производителя оптоволокна получить более точную геометрию волокна. Три параметра как показала практика оказывают наибольшее влияние на характеристики сростка: концентричность сечений сердцевины и оболочки допуск на диаметр оболочки и собственный изгиб волокна. Улучшение этой характеристики при производстве волокна уменьшает шанс неточного расположения сердцевины что способствует получению сростков с меньшими потерями.