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

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

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


 

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

33632. Графические модели 44 KB
  Графические модели сети Петри которые позволяют построить модели дискретных систем. Определение: Сеть Петри это набор N =STFWM0 где S непустое множество элементов сети называемое позициями T непустое множество элементов сети называемое переходами отношение инцидентности а W и M0 две функции называемые соответственно кратностью дуг и начальной разметкой. Если п 1 то в графическом представлении сети число n выписывается рядом с короткой чертой пересекающей дугу. Часто такая дуга будет также заменяться пучком из п...
33633. Построение модели систем защиты на базе Е-сетей на основе выделенного набора правил фильтрации 78 KB
  2 Переходы: d3 = XEâr3 p1 p2 p3 t3 установление соединения проверка пароля и имени пользователя для доступа к внутренней сети подсети; d4 = XEâr4 p2 p4 р5 0 подсчет попыток ввода пароля и имени; d5 = Tp4 p6 0 вывод сообщения о неверном вводе пароля и имени; d6 = Tp1 p6 0 передача пакета для повторной аутентификации и идентификации; d7 = Tp5 p7 t4 создание соответствующей записи в журнале учета и регистрации. 3 Решающие позиции: r3 проверка пароля и имени пользователя; r4 ...
33634. RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) 92.5 KB
  Алгоритм RS состоит из следующих пунктов: Выбрать простые числа p и q заданного размера например 512 битов каждое. Вычислить n = p q Вычисляется значение функции Эйлера от числа n: m = p 1 q 1 Выбрать число d взаимно простое с m Два целых числа называются взаимно простыми если они не имеют никаких общих делителей кроме 1. Выбрать число e так чтобы e d = 1 mod m Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки числа от 0 до n 1.
33635. IDEA (англ. International Data Encryption Algorithm, международный алгоритм шифрования данных) 121 KB
  Interntionl Dt Encryption lgorithm международный алгоритм шифрования данных симметричный блочный алгоритм шифрования данных запатентованный швейцарской фирмой scom. Известен тем что применялся в пакете программ шифрования PGP. Если такое разбиение невозможно используются различные режимы шифрования. Каждый исходный незашифрованный 64битный блок делится на четыре подблока по 16 бит каждый так как все алгебраические операции использующиеся в процессе шифрования совершаются над 16битными числами.
33636. Advanced Encryption Standard (AES) - Алгоритм Rijndael 317.5 KB
  dvnced Encryption Stndrd ES Алгоритм Rijndel Инициатива в разработке ES принадлежит национальному институту стандартов США NIST. Основная цель состояла в создании федерального стандарта США который бы описывал алгоритм шифрования используемый для защиты информации как в государственном так и в частном секторе. В результате длительного процесса оценки был выбрал алгоритм Rijndel в качестве алгоритма в стандарте ES. Алгоритм Rijndel представляет собой симметричный алгоритм блочного шифрования с переменной длиной блока и переменной...
33637. Актуальность проблемы обеспечения безопасности сетевых информационных технологий 13.99 KB
  Отставание в области создания непротиворечивой системы законодательноправового регулирования отношений в сфере накопления использования и защиты информации создает условия для возникновения и широкого распространения компьютерного хулиганства и компьютерной преступности. Особую опасность представляют злоумышленники специалисты профессионалы в области вычислительной техники и программирования досконально знающие все достоинства и слабые места вычислительных систем и располагающие подробнейшей документацией и самыми совершенными...
33638. Основные понятия информационной безопасности 31 KB
  В связи с бурным процессом информатизации общества все большие объемы информации накапливаются хранятся и обрабатываются в автоматизированных системах построенных на основе современных средств вычислительной техники и связи. Автоматизированная система АС обработки информации организационнотехническая система представляющая собой совокупность взаимосвязанных компонентов: технических средств обработки и передачи данных методов и алгоритмов обработки в виде соответствующего программного обеспечения информация массивов наборов баз...
33639. Классификация уязвимостей 37.5 KB
  Некоторые уязвимости подобного рода трудно назвать недостатками скорее это особенности проектирования. В Уязвимости могут быть следствием ошибок допущенных в процессе эксплуатации информационной системы: неверное конфигурирование операционных систем протоколов и служб использование нестойких паролей пользователей паролей учетных записей по умолчанию и др. по уровню в инфраструктуре АС К уровню сети относятся уязвимости сетевых протоколов стека TCP IP протоколов NetBEUI IPX SPX. Уровень операционной системы охватывает уязвимости...
33640. Основные механизмы защиты компьютерных систем 39 KB
  Основные механизмы защиты компьютерных систем Для защиты компьютерных систем от неправомерного вмешательства в процессы их функционирования и несанкционированного доступа НСД к информации используются следующие основные методы защиты защитные механизмы: идентификация именование и опознавание аутентификация подтверждение подлинности субъектов пользователей и объектов ресурсов компонентов служб системы; разграничение доступа пользователей к ресурсам системы и авторизация присвоение полномочий пользователям; регистрация и...