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

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

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


 

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

25639. Кора большого мозга 56 KB
  Наиболее поверхностного и глубокого слоев коры. Для коры характерно расположение клеток и волокон слоями. Цитоархитектоника коры большого мозга.
25640. Костные ткани 38 KB
  В костной ткани обнаружено более 30 микроэлементов медь стронций цинк барий магний и др. Органическое вещество матрикс костной ткани представлено белками коллагенового типа и липидами. Морфофункциональные свойства костной ткани меняются в зависимости от возраста мышечной деятельности условий питания а также под влиянием деятельности желез внутренней секреции иннервации и др.
25641. Костный мозг 45.5 KB
  В данный период костный мозг накапливает стволовые клетки а клетки стромы с остеогенными потенциями создают микросреду необходимую для дифференцировки стволовых кроветворных клеток. У зародыша 36 нед развития в костном мозге диафиза трубчатых костей обнаруживаются жировые клетки. Он содержит стволовые кроветворные клетки СКК и диффероны гемопоэтических клеток эритроидного гранулоцитарного и мегакариоцитарного ряда а также предшественники В и Тлимфоцитов.
25642. Гистологическое строение трубчатой кости как органа 36 KB
  Компактное вещество образующее диафиз кости состоит из костных пластинок толщина которых колеблется от 4 до 1215мкм. Наружные общие генеральные пластинки не образуют полных колец вокруг диафиза кости перекрываются на поверхности следующими слоями пластинок. Внутренние общие пластинки хорошо развиты только там где компактное вещество кости непосредственно граничит с костномозговой полостью.
25643. МЫШЕЧНЫЕ ТКАНИ 27 KB
  В соответствии с морфофункциональным принципом в зависимости от структуры органелл сокращения мышечные ткани подразделяют на две подгруппы. 1 подгруппа поперечнополосатые исчерченные мышечные ткани. Исчерченные мышечные ткани сокращаются быстрее чем гладкие.
25644. Надпочечники 49.5 KB
  В корковом веществе надпочечников образуется комплекс стероидных гормонов которые регулируют обмен углеводов состав ионов во внутренней среде организма и половые функции глюкокортикоиды минералокортикоиды половые гормоны. Ацидофильные клетки становятся зачатком первичной фетальной коры будущих надпочечников. На 10й неделе внутриутробного периода первичная кора окружается снаружи мелкими базофильными клетками происходящими тоже из целомического эпителия которые дают начало дефинитивной коре надпочечников. Мозговая часть...
25645. Нейроглия 33.5 KB
  Клетки глии ЦНС делятся на макроглию глиоциты и микроглию. Эти клетки цилиндрической формы. Базальная поверхность большинства эпендимоцитов ровная но некоторые клетки имеют длинный отросток идущий глубоко в нервную ткань и почти лишены ресничек.
25646. Нейрон. НЕРВНАЯ ТКАНЬ 43 KB
  Нервные клетки нейроны нейроциты основные структурные компоненты нервной ткани выполняющие специфическую функцию. Нейроны. Нейроны нейроциты специализированные клетки нервной системы ответственные за рецепцию обработку процессинг стимулов проведение импульса и влияние на другие нейроны мышечные или секреторные клетки. Нейроны выделяют нейромедиаторы и другие вещества передающие информацию.
25647. Нервные волокна 32.5 KB
  По строению оболочек различают миелиновые и безмиелиновые нервные волокна. Безмиелиновые нервные волокна находятся преимущественно в составе вегетативной нервной системы. В нервных волокнах внутренних органов как правило в таком тяже имеется не один а несколько 1020 осевых цилиндров принадлежащих различным нейронам.