www.webmoney.ru

Добавить в корзину Удалить из корзины Купить

Описание программы


ID работы - 621328
программирование (контрольная работа)
количество страниц - 17
год сдачи - 2012



СОДЕРЖАНИЕ:



Содержание

Содержание 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

Цена: 1000.00руб.

ДОБАВИТЬ В КОРЗИНУ

УДАЛИТЬ ИЗ КОРЗИНЫ

КУПИТЬ СРАЗУ


ЗАДАТЬ ВОПРОС

Будьте внимательны! Все поля обязательны для заполнения!

Контактное лицо :
*
email :
*
Введите проверочный код:
*
Текст вопроса:
*



Будьте внимательны! Все поля обязательны для заполнения!

Copyright © 2009, Diplomnaja.ru