книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Операционные системы. Лабораторная работа № 3 ( Контрольная работа, 12 стр. )
Описание программы ( Контрольная работа, 10 стр. )
Описание программы ( Контрольная работа, 17 стр. )
Определение максимума (минимума) функций методом «золотого сечения» 2008-19 ( Курсовая работа, 19 стр. )
Определение максимума (минимума) функций методом «золотого сечения» ( Курсовая работа, 20 стр. )
ОПРЕДЕЛЕНИЕ ПОЛОЖЕНИЯ ЦЕНТРА ТАЙФУНА ПО СЕРИИ СПУТНИКОВЫХ ИЗОБРАЖЕНИЙ ( Курсовая работа, 16 стр. )
Оптимізація формування состава збірного поїзда методом цілочисельного лінійного програмування (Украина) ( Контрольная работа, 5 стр. )
Организация хранения и обработки пространственных данных в настольных и промышленных СУБД ( Дипломная работа, 47 стр. )
Освоение математического аппарата вейвлет-анализа для последующего восстановления температурных фронтов поверхности океана на основе совместного анализа разномасштабной спутниковой информации ( Курсовая работа, 13 стр. )
Освоение методики проектирования сложных управляющих программ, изучение типовых приемов и получение практических навыков в программировании ( Курсовая работа, 31 стр. )
Основные методы объекта Range ( Контрольная работа, 11 стр. )
Основные механизмы IPC в операционных системах семейства Windows 3 ( Реферат, 15 стр. )
Основные типы МР3-плееров. Понятие и сущность МРЗ. ( Реферат, 7 стр. )
Основные этапы создания слайдов ( Контрольная работа, 15 стр. )
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ С (Белоруссия) ( Курсовая работа, 62 стр. )
основы управления оперативной памятью ( Контрольная работа, 7 стр. )
ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ СОВРЕМЕННЫХ ЭЛЕКТРОННЫХ ЭНЦИКЛОПЕДИЙ………………………………………..12 ( Курсовая работа, 25 стр. )
Особенности эксплуатации различных видов серверного программного обеспечения ( Контрольная работа, 18 стр. )
Ответы на вопросы информатика и программирование ( Контрольная работа, 149 стр. )
Отделение льда от облачности по динамике изображе-ний спутников NOAA ( Курсовая работа, 18 стр. )
ОТЧЕТ О ЛАБОТАРОРНОЙ РАБОТЕ Методы и средства анализа данных по теме: "Система анализа данных WEKA" ( Контрольная работа, 13 стр. )
Отчет по дисциплине "Базы данных" лабораторная работа №5 "Создание экспертной систем с помощью программы VP-EXPERT" ( Контрольная работа, 13 стр. )
Отчет по дисциплине "Базы данных", лабораторная работа №3 "Использование СУБД MySQL" ( Реферат, 22 стр. )
Отчет по дисциплине "Базы данных" лабораторная работа №4 "Проектирование и реализация информационно-поисковой системы с помощью CASE-средства DBDesigner" 2006-17 ( Реферат, 17 стр. )
Отчет по дисциплине "Базы данных" лабораторная работа №4 "Проектирование и реализация информационно-поисковой системы с помощью CASE-средства DBDesigner" ( Реферат, 17 стр. )

Содержание

Содержание 2

ЗАДАНИЕ 1. Простой алгоритм двумерного отсечения. 3

Листинг программы 7

ЗАДАНИЕ 3. Рисование линий по алгоритму Брезенхема. 8

Листинг программы 8

Задание 4 Рисование блок-схемы 9

ЛИСТИНГ ПРОГРАММЫ РАЗБИЕНИЯ МНОГОУГОЛЬНИКОВ 13

Список литературы 17

ЗАДАНИЕ 1. Простой алгоритм двумерного отсечения.

Р1 , Р2 - концевые точки отрезка

Р1' , Р2'- концевые точки видимой части отрезка

xл, xп , yв , y н - координаты левой, правой, верхней и нижней сторон окна

Флаг - признак видимости, равный: 0, видимость; - 1, невидимость

вычисление кодов концевых точек

занесение этих кодов в два массива Т1код и Т2код, размерностью 1 х 4 каждый

для первого конца: Р1

if x1 < xл then Т1код(4) = 1 else Т1код(4) = 0

lf x1 > xп then Т1код(3) = 1 else Т1код(3) = 0

If y1 < yн then Т1код(2) = 1 else Т1код(2) = 0

If y1 > yв then Т1код(1) = 1 else Т1код(1) = 0

для второго конца: Р2

if x2 < xл then Т2код(4) = 1 else Т2код(4) = 0

lf x2 > xп then Т2код(3) = 1 else Т2код(3) = 0

If y2 < yн then Т2код(2) = 1 else Т2код(2) = 0

If y2 > yв then Т2код(1) = 1 else Т2код(1) = 0

инициализация признака видимости и видимых концевых точек

инициализация т очень большим числом, имитирующим бесконечный наклон

Флаг = 0

Р1' = Р1

Р2' = Р2'

m = Большое число

проверка полной видимости отрезка

Сумма1 = 0

Сумма2 = 0

for i = 1 to 4

Сумма1 = Сумма1 + Т1код(i)

Сумма2 = Сумма2 + Т2код(i)

next i

if Сумма1 = 0 and Сумма2 = 0 then 7

отрезок не является полностью видимым

проверка случая тривиальной невидимости

вычисление логического произведения (Произвед) кодов концевых точек отрезка

Произвед = 0

for i = 1 to 4

Произвед = Произвед + Целая часть ((Т1код(i)) + Т2код(i)/2)

If Произвед < > 0 then

Флаг = - 1

go to 7

end if

next i

отрезок может быть частично видимым проверка попадания первой точки внутрь окна

if Сумма1 = 0 then

Номер = 1

Р1' = Р1

P = Р2

go to 2

end if

проверка попадания второй точки внутрь окна

if Сумма2 = 0 then

Номер = 2

Р1' = Р2

P = Р1

go to 2

end if

внутри окна нет концов отрезка

инициализация номера конца отрезка

Номер == 0

1 if Номер < > 0 then Р'номер = Р

Номер = Номер + 1

if Номер > 2 then 7

P = Рномер

проверка пересечения с левым краем проверка вертикальности отрезка

2 if (x2 - x1 ) = 0 then 4

m = (y2 - y1 )/ (x2 - x1 )

if xл < Px then 3

у = m * (xл - Px) + Py

if y < yв then 3

if y < yн then 3

обнаружено корректное пересечение

Py = y

Px = xл

gо to 1

проверка пересечения с правым краем

3 if xп > Рx then 4

у = m * (хп - Рx) + Рy

if y < yв then 4

if y < yн then 4

обнаружено корректное пересечение

Py = y

Px = xп

gо to 1

проверка пересечения с верхним краем проверка горизонтальности отрезка

4 if m = 0 then 1

if yв > Рy then 5

x = (1/m) * (ув - Ру) + Рx

if x < xл then 5

if x < xп then 5

обнаружено корректное пересечение

Px = x

Py = yв

gо to 1

проверка пересечения с нижним краем

5 if yн > Рy then ошибка

х = (1/m) * (yн - Ру) + Рx

if x < xл then 6

if x < xп then 6

обнаружено корректное пересечение

Px = x

Py = yн

gо to 1

отрезок невидим

6 Флаг = - 1

завершение работы и вызов процедуры черчения

7 If Флаг = - 1 then 8

Draw P1'P2'

перейти к обработке следующего отрезка

8 finish

Список литературы

1. Багриновский К.А., Хрусталев Е.Ю. Программирование на зыках высокого уровня. - М.: “ЭКО”. 2004.

2. Белинов С.В., Зайцев А.А. Современные информационные технологии. – М.: Инфра-М, 2003.

3. Шафрин Ю. А. Программирование на языке С++. - М.: АБФ, 2005.

4. Lavel. Graphics. Растровая и векторная графика: http://win-www.klax.tula.ru/~level/graphics/predgrph.html

5. Векторная графика на языках С++ и Delphi: электронный учебник– http://imped.vgts.ru/polygraph/vektor.html

6. Семенов Р.Ж. О векторной и растровой графике // Компьютера, №3, 2003. http://flashmaker.8m.com/help/html/02basics2.html

Примечаний нет.

2000-2024 © Copyright «DipMaster-Shop.ru»