511

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

Курсовая

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

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

Русский

2013-01-06

226 KB

11 чел.

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

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

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

Кафедра 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

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

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


 

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

34102. Земельно-правовая ответственность. Дисциплинарная ответственность в области использования и охраны земель 29 KB
  Специфической санкцией земельноправовой ответственности является земельного участка у собственника либо принудительное прекращение прав на земельный участок. 45 и 47 ЗК орган государственного земельного контроля налагает административное взыскание и одновременно выносит предупреждение о необходимости устранения нарушения; в этом предупреждении указывается допущенное правонарушение его содержание суть устанавливается срок для устранения допущенного правонарушения; разъясняются права земледельца землепользователя в случае...
34103. Гражданско-правовая ответственность за правонарушения в области использования и охраны земель 31.5 KB
  И хотя в настоящее время имущественная ответственность еще не нашла своего подобающего места среди других форм юридической ответственности будущее за ней неоспоримо так как ухудшение качества земель и всей окружающей среды влечет как правило имущественные последствия предполагающие возможность возмещения вреда восстановления земель и нарушенных экологических систем. Гражданским законодательством предусматривается ряд правил выработанных за тысячелетия: вред причиненный личности организации или имуществу подлежит возмещению в...
34104. Административная ответственность за правонарушения в области использования и охраны земель 37 KB
  АДМИНИСТРАТИВНАЯ ОТВЕТСТВЕННОСТЬ Согласно Кодексу РФ об административных правонарушениях КоАП от 30 декабря 2001 г. Кроме того в официальных кругах стала преобладать концепция отмирания социалистического государства и уменьшения административных принудительных средств воздействия на правонарушителей необходимости перехода к добровольному исполнению своих обязанностей перед обществом повышения моральных стимулов. Основным органом наложения административных взысканий стала административная комиссия при исполнительных комитетах...
34105. Уголовная ответственность за регистрацию незаконных сделок с землей (ст. 170 УК РФ) 22 KB
  Уголовная ответственность за регистрацию незаконных сделок с землей ст. 254 УК; государственная регистрация незаконных сделок. Государственная регистрация незаконных сделок с земельными участками ст.
34106. Уголовная ответственность за порчу земель (ст. 254 УК РФ) 22.5 KB
  Уголовная ответственность за порчу земель ст. Порча земель ст. За порчу земель предусмотрена как административная так и уголовная ответственность в зависимости от последствий. Порча земель – это ухудшение физических и биологических свойств почвы снижение ценности земли.
34107. Порядок установления и взимания земельного налога 32 KB
  Существует две формы платы за землю: земельный налог; арендная плата. Земельный налог. Земельный налог относится к категории местных налогов. Земельный налог устанавливается исключительно нормативноправовыми актами органов местного самоуправления либо законами представительных органов Москвы и СанктПетербурга.
34108. Арендная плата и нормативная цена земли 40.5 KB
  Оценка земли виды стоимости. Существует 4 вида стоимости цены: нормативная цена; кадастровая стоимость; рыночная стоимость; выкупная цена. В любом случае нормативная цена земельного участка не должна быть более 75 от рыночной стоимости аналогичных земельных участков. были внесены изменения в Закон “Об оценке и оценочной стоимости в РФ†и впервые кадастровая стоимость получила закрепление на законодательном уровне.
34109. Пять базовых техник психотерапии:суггестия, абреакция, манипуляция, разъяснение, интерпретация 95 KB
  Абреакция – как основа эмоционального состояния и способности пациента справляться с ним. кратко говоря различных ментальных процессов терапевтом индивидуум в авторитетном положении у пациента индивидуума в зависимом положении независимо от или с исключением рационального или критического реалистического мышления последнего. Техническое использование суггестии может быть главным образом формальным к примеру чтобы в общем индуцировать пациента к фантазии или сну какой бы не была эта фантазия или сон или главным образом...
34110. Понятие регрессии. Роль регрессии в развитии психоаналитической терапии 48 KB
  Понятие регрессии. Роль регрессии в развитии психоаналитической терапии. Процесс регрессии – как временный постоянный защитный топический ситуационный. Патологическая и нормальная регрессии их формирование в процессе развития и их значение в функционировании психического аппарата и формировании различных уровней психопатологии.