220 likes | 391 Views
Преодоление сложностей (1). Экскурс в реальные задачи. Пересечение отрезков. Исходные данные. x1, y1 x2, y2 x3, y3 x4, y4 Два отрезка заданы координатами вершин. Необходимо найти,. Пересекаются ли отрезки ?
E N D
Преодоление сложностей (1) Экскурс в реальные задачи. Пересечение отрезков.
Исходные данные • x1, y1 • x2, y2 • x3, y3 • x4, y4 Два отрезка заданы координатами вершин Тема 4 - экскурс Сложность в простом
Необходимо найти, • Пересекаются ли отрезки? По определению отрезки пересекаются, если у них есть хотя бы одна общая точка Тема 4 - экскурс Сложность в простом
Модель • необходимые тесты • реализация • проблемы Тема 4 - экскурс Сложность в простом
Пиксельная графическая модель • привязана к устройству вывода • дискретна • ограничена в применении, но в области своей применимости решения всегда существуют Тема 4 - экскурс Сложность в простом
Габаритная модель • Не всегда хорошо работает • Но быстро можно получить отсечение неверного решения • Проста в реализации • Ограниченность в применении Тема 4 - экскурс Сложность в простом
Алгебраическая модель • требует решения системы уравнений • проста в реализации и понятна • не применима для вырожденных случаев (наличие вертикального отрезка или отрезка нулевой длины) • больший диапазон применимости Тема 4 - экскурс Сложность в простом
Ориентационная модель • Понятие ориентированной площади • Тест расположения точки относительно прямой • условие пересечения • простота реализации • область применимости еще шире • вырожденные случаи Тема 4 - экскурс Сложность в простом
Обработка вырожденных случаев • габаритный тест проходит! • - проверить горизонтальность • - проверить вертикальность Тема 4 - экскурс Сложность в простом
Тестирование программы • Исчерпывающий набор тестов • Метод черного ящика • Метод белого ящика Тема 4 - экскурс Сложность в простом
Интерфейс модуля • унификация • понятность • простота использования Тема 4 - экскурс Сложность в простом
Соответствие спецификации • требования «заказчика» • система формального тестирования • формат тестового набора • язык реализации Тема 4 - экскурс Сложность в простом
Преодоление сложностей (2) Точка внутри многоугольника
Исходные данные • N – количество вершин многоугольника • x1, y1, x2, y2, x3, y3, … xN, yN – координаты вершин многоугольника • x0 y0 – координаты тестовой точки • Многоугольник не имеет пересекающихся сторон, не обязательно является выпуклым Тема 4 - экскурс Сложность в простом
Габаритная модель • Ограничивает область поиска ответа • Не дает во многих случаях верного решения • Проста и понятна • Легко реализуется • Область применения ограничена Тема 4 - экскурс Сложность в простом
Алгебраическая модель • Сложна в реализации • Имеет вырожденные случаи • Требует значительных вычислительных ресурсов • Имеет ограничения в применении Тема 4 - экскурс Сложность в простом
Лучевая модель • Проста и понятна • Есть вырожденные случаи • Есть возможности обхода вырожденных случаев • Реализация требует дополнительных тестов (на пересечение) • Обход вырожденных случаев требует дополнительного анализа Тема 4 - экскурс Сложность в простом
Ориентационная модель • Ориентированная площадь многоугольника • Проста и понятна • Легко реализуется • Нет вырожденных случаев Тема 4 - экскурс Сложность в простом
Тестирование • Метод черного ящика • Метод белого ящика • Охота за вырожденными случаями Тема 4 - экскурс Сложность в простом
Выводы • Простые задачи имеют тенденцию становиться сложными • Сложность в реализации зависит от выбранной модели • Вырожденные случаи особенно досаждают • Любую задачу удобно привести к уже решенной • Сложность преодолима Тема 4 - экскурс Сложность в простом
Где еще нас подстерегают сложности • Трехмерная графика • Разбиение области на треугольники • Решение обратных задач • Нахождение оптимального решения • и еще много где… Тема 4 - экскурс Сложность в простом
Где найти дополнительный материал • Е.А.Никулин Компьютерная геометрия и алгоритмы машинной графики, БХВ-Петербург, СПб 2003 • ftp://bkv.vvsu.ru/pub/TP/known-math/ Тема 4 - экскурс Сложность в простом