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

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

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


 

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

75865. Види інформаційно-пошукових систем. Ключові слова. Пошуковий образ документу. Інформаційно-пошукова мова 27.06 KB
  По характеру предоставления логической организации хранимой информации ИПС разделяются на фактографические документальные и геоинформационные. В документальных единичным элементом информации является нерасчлененный на более мелкие элементы документ и информация при вводе как правило не структурируются или структурируются в ограниченном виде. Для вводимого документа могут устанавливаться некоторые формализованные позиции дата изготовления исполнитель тематика. Некоторые виды документальных информационных систем обеспечивают установление...
75866. Соціолект. Види соціолектів 26.42 KB
  Койне. Термин койне первоначально применялся лишь к общегреческому языку который сложился в 43 вв. В современной социолингвистике койне повседневное общение которое связывает людей говорящих на разных региональных или социальных вариантах данного языка. В роли койне могут выступать наддиалектные формы языка своеобразные интердиалекты объединяющие в себе черты разных территориальных диалектов или один из языков функционирующих в данном ареале.
75867. Соціолінгвістика. Провідні поняття соціолінгвістики. Провідні поняття соціолінгвістики. Комунікативна ситуація 29.18 KB
  Под социальными условиями имеется в виду комплекс внешних обстоятельств в которых реально функционирует и развивается язык: общество людей использующих данный язык социальная структура этого общества различия между носителями языка в возрасте социальном статусе уровне культуры и образования месте проживания а также различия в их речевом поведении в зависимости от ситуации общения. Языковое сообщество это совокупность людей объединенных общими социальными экономическими политическими и культурными связями и осуществляющих в...
75868. Технічне забезпечення інтернет-комунікації. Інтернет-каталоги та пошукові машини. Інформаційно-пошукова мова. Дескриптори 31.73 KB
  Інтернеткаталоги та пошукові машини. Интернеткаталог англ. Сайты внутри каталога разбиваются по темам а внутри тем могут быть ранжированы или по индексу цитирования как в каталогах Яндекса или Google или по дате добавления или по алфавиту или по другому параметру. В зависимости от широты тематики ссылок каталоги могут быть общими и специализированными тематическими.
75869. Структура словника. Компоненти словникової статті 30.64 KB
  Каждая зона содержит особый тип словарной информации. Первая зона лексический вход словарной статьи вокабула заголовок словарной статьи или лемма син. Поэтому в жаргоне лексикографов и редакторов эта зона часто называется черное слово. В толковом словаре после лексического входа чаще всего следует зона грамматической информации и зона стилистических помет.
75870. Предмет та завдання політичної лінгвістики 38.5 KB
  точкой отсчета для становления политической лингвистики стала первая мировая война которая привела к невиданным человеческим потерям и кардинальному изменению мироощущения человечества. В новых условиях необходимость изучения политической коммуникации и ее взаимосвязи с общественнополитическими процессами становилась все более очевидной. Поэтому неудивительно что после войны внимание исследователей языка политики было направлено на изучение способов формирования общественного мнения эффективности политической агитации и военной пропаганды....
75872. Роль контексту у лінгвістичному забезпеченні інформаційних систем 27.29 KB
  К сфере лингвистического обеспечения мы относим три основные задачи которые должны решаться при создании любой автоматизированной библиотечной системы структуризация библиографической записи индексация библиографической записи средствами...
75873. Класифікація видів перекладу за характером діяльності, швидкістю та напрямком 43.5 KB
  Существуют две основных классификации видов перевода: по характеру переводимых текстов по характеру речевых действий переводчика в процессе перевода. Рассмотрим классификацию по характеру действий переводчика а конкретно различия между письменным и устным переводом: В письменном переводе переводчик не ограничен жесткими временными рамками он может в любой момент прервать перевод вернуться к уже переведенному отрезку речи потратить дополнительное время на...