Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Алгоритмы разложения в растр графических примитивов

Читайте также:
  1. А. Общие сведения о стратиграфических методах; стратиграфические корелляции: понятия в осадконакоплении и поверхностях размыва.
  2. Алгоритм криптографических преобразований методом перестановки в магическом квадрате
  3. Алгоритмы адаптивной фильтраци
  4. Алгоритмы замещения страниц
  5. АЛГОРИТМЫ ОРГАНИЗАЦИИ РЕКЛАМНЫХ КАМПАНИЙ
  6. АЛГОРИТМЫ СТИМУЛЯЦИИ ТВОРЧЕСКОЙ АКТИВНОСТИ

Лабораторная работа №2

Цель работы:

Изучение алгоритмов разложения в растр графических примитивов.

 

Форма проекта:

 

Код программы для прямой:

 

Private Sub Command1_Click()

Picture1.Cls

Picture1.Scale (-2500, 2500)-(2500, -2500)

X1 = Val(Text2): Y1 = Val(Text3)

X2 = Val(Text4): Y2 = Val(Text5)

d = X2 - X1

dx = 1

dy = Abs((Y2 - Y1) / (X2 - X1))

X = X1: Y = Y1: i = 1

Do While i < d

Picture1.PSet (X, Round(Y)), vbRed

X = X + dx

Y = Y + dy

i = i + 1

Loop

End Sub

Результат:

 

Окружность:

Блок-схема алгоритма Брезенхема генерации окружности в первом квадранте

Алгоритм, представленный на блок-схеме позволяет строить только одну восьмую часть окружности. Остальные ее части могут быть получены последовательными отражениями.

 

Матрица преобразований для генерации полной окружности

 

Код программы для окружности:

 

Private Sub Command2_Click()

Picture1.Cls

Picture1.Scale (-2500, 2500)-(2500, -2500)

r = Val(Text6)

X = 0

Y = r

d = 2 * (1 - r)

l = 0

Do While Y > l

Picture1.PSet (X, Y), vbRed

Picture1.PSet (X, -Y), vbRed

Picture1.PSet (-X, -Y), vbRed

Picture1.PSet (-X, Y), vbRed

If d < 0 Then

s = 2 * d + 2 * Y - 1

If s <= 0 Then

X = X + 1

d = d + 2 * X + 1

Else

X = X + 1

Y = Y - 1

d = d + 2 * X - 2 * Y + 2

End If

Else

If d > 0 Then

s = 2 * d - 2 * X - 1

If s <= 0 Then

X = X + 1

Y = Y - 1

d = d + 2 * X - 2 * Y + 2

Else

Y = Y - 1

d = d - 2 * Y + 1

End If

 

Else

X = X + 1

Y = Y - 1

d = d + 2 * X + 2 * Y + 2

End If

End If

Loop

End Sub

 

Результат:

 

Ответы на контрольные вопросы:

1. В чем недостатки простейшего метода разложения в растр отрезка?

В некоторых случаях, в отрезке, разложенном в растр простейшим методом, могут появиться разрывы, например, если выбрать такой отрезок, у которого разброс по оси Y больше разброса по оси X в несколько раз. Вдобавок предложенный алгоритм имеет тот недостаток, что он использует вещественную

арифметику.

2. Как работает алгоритм Брезенхема разложения в растр линии?

Алгоритм Брезенхема выбирает оптимальные растровые координаты, используя целочисленную арифметику. В процессе работы одна из координат (x или y) на каждом шаге обязательно меняется на единицу. Изменение другой координаты (на 0 или 1) зависит от расстояния между действительным положением отрезка и ближайшими координатами сетки. Это расстояние называют ошибкой.

3. Как работает алгоритм Брезенхема разложения в растр окружности?

Выбирается генерация по часовой стрелке с началом в точке x = 0, y = R.

Предполагается, что центр окружности и начальная точка находятся точно в точках растра. Для любой заданной точки на окружности при генерации по часовой стрелке существует только три возможности выбрать следующий пиксел, наилучшим образом приближающий окружность: горизонтально вправо, по диагонали вниз и вправо, вертикально вниз.


Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

Уфимский государственный авиационный технический университет

 

 

кафедра информатики

 

 

Отчет по лабораторной работе №2

«Алгоритмы разложения в растр графических примитивов в Visual Basic»

 

 

Выполнил:

ст. гр. БПС-101

Ильясов Р.Г.

Тарасова М.Н.

Проверил:

к.т.н., доцент

Низамова Г.Ф.

 

Уфа-2011


Дата добавления: 2015-07-26; просмотров: 148 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Метаморфические горные породы| Противоаэрозольные фильтры

mybiblioteka.su - 2015-2024 год. (0.007 сек.)