Преодоление сложностей (1) Экскурс в реальные задачи. Пересечение отрезков. Исходные данные x1, y1 x2, y2 x3, y3 x4, y4 Два отрезка заданы координатами вершин Тема 4 - экскурс Сложность в простом 2 Необходимо найти, Пересекаются ли отрезки? По определению отрезки пересекаются, если у них есть хотя бы одна общая точка Тема 4 - экскурс Сложность в простом 3 Модель необходимые тесты реализация проблемы Тема 4 - экскурс Сложность в простом 4 Пиксельная графическая модель привязана к устройству вывода дискретна ограничена в применении, но в области своей применимости решения всегда существуют Тема 4 - экскурс Сложность в простом 5 Габаритная модель Не всегда хорошо работает Но быстро можно получить отсечение неверного решения Проста в реализации Ограниченность в применении Тема 4 - экскурс Сложность в простом 6 Алгебраическая модель требует решения системы уравнений проста в реализации и понятна не применима для вырожденных случаев (наличие вертикального отрезка или отрезка нулевой длины) больший диапазон применимости Тема 4 - экскурс Сложность в простом 7 Ориентационная модель Понятие ориентированной площади Тест расположения точки относительно прямой условие пересечения простота реализации область применимости еще шире вырожденные случаи Тема 4 - экскурс Сложность в простом 8 Обработка вырожденных случаев габаритный тест проходит! - проверить горизонтальность - проверить вертикальность Тема 4 - экскурс Сложность в простом 9 Тестирование программы Исчерпывающий набор тестов Метод черного ящика Метод белого ящика Тема 4 - экскурс Сложность в простом 10 Интерфейс модуля унификация понятность простота использования Тема 4 - экскурс Сложность в простом 11 Соответствие спецификации требования «заказчика» система формального тестирования формат тестового набора язык реализации Тема 4 - экскурс Сложность в простом 12 Преодоление сложностей (2) Точка внутри многоугольника Исходные данные N – количество вершин многоугольника x1, y1, x2, y2, x3, y3, … xN, yN – координаты вершин многоугольника x0 y0 – координаты тестовой точки Многоугольник не имеет пересекающихся сторон, не обязательно является выпуклым Тема 4 - экскурс Сложность в простом 14 Габаритная модель Ограничивает область поиска ответа Не дает во многих случаях верного решения Проста и понятна Легко реализуется Область применения ограничена Тема 4 - экскурс Сложность в простом 15 Алгебраическая модель Сложна в реализации Имеет вырожденные случаи Требует значительных вычислительных ресурсов Имеет ограничения в применении Тема 4 - экскурс Сложность в простом 16 Лучевая модель Проста и понятна Есть вырожденные случаи Есть возможности обхода вырожденных случаев Реализация требует дополнительных тестов (на пересечение) Обход вырожденных случаев требует дополнительного анализа Тема 4 - экскурс Сложность в простом 17 Ориентационная модель Ориентированная площадь многоугольника Проста и понятна Легко реализуется Нет вырожденных случаев Тема 4 - экскурс Сложность в простом 18 Тестирование Метод черного ящика Метод белого ящика Охота за вырожденными случаями Тема 4 - экскурс Сложность в простом 19 Выводы Простые задачи имеют тенденцию становиться сложными Сложность в реализации зависит от выбранной модели Вырожденные случаи особенно досаждают Любую задачу удобно привести к уже решенной Сложность преодолима Тема 4 - экскурс Сложность в простом 20 Где еще нас подстерегают сложности Трехмерная графика Разбиение области на треугольники Решение обратных задач Нахождение оптимального решения и еще много где… Тема 4 - экскурс Сложность в простом 21 Где найти дополнительный материал Е.А.Никулин Компьютерная геометрия и алгоритмы машинной графики, БХВ-Петербург, СПб 2003 ftp://bkv.vvsu.ru/pub/TP/known-math/ Тема 4 - экскурс Сложность в простом 22