У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа Отсечение невидимых частей плоских фигур Напомним материал лекций

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

Лабораторная работа «Отсечение невидимых частей плоских фигур»

Напомним материал лекций.

«ОТСЕЧЕНИЕ ЛИНИЙ

Предположим, что мировые и экранные координаты одинаковые, то есть совпадают

Y                                                             R

Ymax                     D                      P’              Q’                    C

                                            

                                         P PPP  

Ymin                         

                                            A                                                                 B

    O                     X min                                                                        Xmax              X

На рисунке показан прямоугольник ABCD, который является окном. В видимые отрезки и линии должны лежать внутри окна. То есть при вычерчивании отрезка прямой линии части, лежащие вне окна, должны быть отсечены. Процесс отсечения должен выполняться автоматически.

  На рисунке прямоугольник ABCD вычерчивается раньше, чем треугольник PQR, так что вместо этого треугольника надо вычертить ломаную PPQQ.

  Поскольку заданы только три точки  P, Q и R, координатная пара (xp, yp) должна быть вычислена из значений координат точек (xp, yp)  и (xR,yR).Из рисунка видно, что наклон отрезка PR можно вычислить двумя способами,  что приводит к следующему уравнению

                           

Совмещая это с соотношением

                             yp = ymax

получим

xp=  xp +

Отсюда легко вычисляются координаты точки P’, если известно, что концевая точка Р находится внутри окна, а другая концевая точка R (xR, yR) удовлетворяет неравенствам

    xmin < xR < xmax

    yR > xmax

Однако необходимо рассмотреть значительно больше ситуаций. Представим их в таблице

1001

0001

0101

1000

0000

0100

1010

0010

0110

В этой таблице с любой точкой P (x, y) ассоциируется четырехбитовый код

b3b2b1b0, где bi т быть либо 0, либо 1.

Запишем значения битов используя выражения языка Pasxal

b3 = (x < xmin)

b2 = (x > xmax)

b1 = (y < ymin)

b0 = (y > ymax

Для  удобства перепишем последнюю таблицу с упрощенной нумерацией частей плоскости

1

2

3

4

0

5

6

7

8

Теперь составим алгоритм.

Первый шаг алгоритма, составим уравнения прямых образующих окно.

Второй шаг алгоритма определим части плоскости,  в которых находятся концы отрезка и зададим эти варианты.

Для удобства перепишем эти пары таким образом, чтобы на первом месте стоял меньший номер.

Очевидно, что отрезок, определяемой парой 00 целиком лежит в окне, то есть весь отрезок видимый

Отрезки, определяемые парами  11, 12, 13, 14, 16, 22, 33, 35, 38, 44, 46, 55, 58, 66, 67,  68, 77, 78 и 88 заведомо лежат вне окна и не видны.

Пары 02, 04, 05 и 07 могут иметь пересечение только с одной прямой и видимую часть отрезка определить заведомо легко от точки лежащей в области 0 до пересечения прямой задающий отрезок, со стороной окна. (На самом деле, прямая определяемая отрезком, будет иметь два пересечения со сторонами окна, но одна из точек пересечения принадлежит отрезку, а вторая  лежит вне отрезка).

Пары точек 01, 03, 06 и 09 могут иметь пересечение с двумя прямыми составляющими границы окна, надо найти обе точки пересечения, одна из них лежит на границе окна, другая за пределами окна (исключением могут быть углы окна). Надо определить какая точка лежит на границе окна и построить соответствующий отрезок.

По аналогии надо рассмотреть случаи 15, 17, 18, 24, 25, 26. 28, 34, 36, 47 и 48.

Для каждого из этих случаев надо составить свою процедуру, предварительно составив  таблицу по образцу

Случай

Прямые которые может  пересечь отрезок

(Верхняя горизонтальная Ув, Нижняя горизонтальная Ун, Левая вертикальная Хл, Правая вертикальная Хп)

18

Хл, Ув, Хп, Ун

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

Случай

Ситуация

Отрезок пересекает окно

по линиям

Координаты углов окна

Координаты концов отрезка

Координаты точек пересечения

18

Хл и Ун

Ув и Хп

Для зачета работы представить показать работоспособность программы, текст программы, представить набор тестов, ответить на вопросы по тексту программы и по набору тестов.  




1. Система подготовки бакалавров в колледжах Франции
2. Курсовая работа- Електронні словники та системи перекладу в Інтернеті
3. Курсовая работа- Сжатие речи на основе алгоритма векторного квантования
4. Задан массив чисел. Найти в данном массиве числа, которые являются нечетными и больше 10
5. Антропогенное воздействие на биосферу
6. Царь Эдип ПерФФ
7. Программное обеспечение Оглавление Введение Операционные системы Системы программирования Прикл
8. ВВЕДЕНИЕ.1
9. Дедлайн 31 января 2014 года
10. Страхование внешнеэкономической деятельности
11. По ширине страницы пронумерованы
12. Пьер Абеляр
13. Необхідно визначити суму ПДВ що підлягає сплаті в державний бюджет відшкодуванню з бюджету за резу
14. Проектирование разработки месторождений Проект разработки это комплексный документ являющийся програ
15. тема Microsoft Windows XP Home Edition Процессор Центральный процессор
16. Фукусима1 называют землетрясение вызвавшее неисправности в линиях электропередачи; цунами которое залил
17. реферат дисертації на здобуття наукового ступеня кандидата біологічних наук Луга
18. Задание- Сгруппировать хозяйственные средства ЗАО Стройиндустрия по видам и источникам его формирования
19. Лекция 10 МЕТОДИЧЕСКОЕ МАСТЕРСТВО УЧИТЕЛЯ ИНОСТРАННОГО ЯЗЫКА План- Составляющие методического
20. Види і природа каналів просочування інформації при експлуатації ЕОМ На завершення розгляду технічних к