Исследование алгоритмов отсечения отрезков и многоугольников окнами различного вида. Описание интерфейса

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение 
высшего профессионального образования
“Санкт-Петербургский государственный электротехнический университет “ЛЭТИ” им. В.И. Ульянова (Ленина)”
 (СПбГЭТУ)


,  


Кафедра САПР

ФКТИ

Дисциплина: Компьютерная графика

                                                  ЛАБОРАТОРНАЯ РАБОТА №   4 

«Исследование алгоритмов отсечения отрезков и многоугольников окнами различного вида»

Вариант 1

Выполнили:

студент гр.0373

Проверил:

«Выполнено»  «____» __________    2014

Подпись преподавателя _______________

Санкт-Петербург

2014

ЛАБОРАТОРНАЯ РАБОТА №   4      

Исследование алгоритмов отсечения отрезков и многоугольников окнами различного вида

Задача:

Обеспечить реализацию простого алгоритма отсечения массива произвольных отрезков заданным прямоугольным окном. Массив отрезков следует формировать генератором случайных чисел. Вначале следует вывести на экран сгенерированные отрезки полностью, а затем другим цветом или яркостью те, которые полностью или частично попадают в область окна.

Теоретические сведения:

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

Главная цель любого алгоритма отсечения линии  минимизировать расчет точек пересечения. Для этого необходимо вначале выполнить проверку - где находится участок линии.

1.  Полностью  внутри или полностью снаружи отсекающего окна.

2.  Если линия не относится к полностью внутренним или полностью внешним, нужно вычислить точки пересечения линии с периметром окна.

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

Для проверки пересечения окна с прямой используются следующие формулы:

x = x0 + u(xend - x0);

y = y0 + u(yend - y0);

где (x0, y0) и (xend, yend)  - концы отрезка; 0 £ u £1

Описание интерфейса

Интерфейс программы выполнен наглядным и интуитивно понятным образом. В нижней части окна имеются поля для редактирования ширины и высоты окна, количества линий, а также шага для расчета параметра U. Как и просится в задании при нажатии на кнопку ОК сначала выводятся все линии, после чего нажатием на канву появляется окно. Перемещать окно можно мышкой, наиболее удобная и понятная пользователю форма его перемещения. Линии полностью входящие в окно подсвечиваются красным. Не полностью – синим. Не входящие в окно - бледно-розовым.

Выводы по работе

В данной лабораторной работе мы обеспечили реализацию простого алгоритма отсечения массива произвольных отрезков заданным прямоугольным окном

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.