Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

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

Описание

Данная программа на Python представляет собой графическое приложение, которое демонстрирует работу алгоритмов отсечения отрезков и многоугольников: алгоритм Коэна-Сазерленда и алгоритм Сазерленда-Ходжмана. Приложение предоставляет интерактивный интерфейс, созданный с использованием библиотек Tkinter и Matplotlib, позволяющий добавлять отрезки, рисовать многоугольники и задавать окно отсечения.


Возможности

  • Добавление отрезков: Ввод координат отрезков и их отображение на графике.
  • Задание окна отсечения: Определение прямоугольного окна отсечения.
  • Отсечение отрезков: Использование алгоритма Коэна-Сазерленда для отсечения отрезков относительно окна.
  • Отсечение многоугольников: Использование алгоритма Сазерленда-Ходжмана для отсечения многоугольников относительно окна.
  • Интерактивное рисование многоугольников: Щелчки мыши на графике для создания многоугольника.
  • Очистка графика: Сброс графика для начала новой демонстрации.

Использование приложения

Запустите приложение:

python имя_файла.py

Используйте интерфейс для взаимодействия:

  1. Введите координаты отрезка и нажмите "Добавить отрезок".
  2. Введите координаты окна отсечения и нажмите "Установить окно".
  3. Нажмите "Отсечь", чтобы отсечь отрезки или многоугольники.
  4. Для рисования многоугольника нажмите "Нарисовать многоугольник" и кликайте на графике для добавления точек.
  5. Чтобы завершить рисование многоугольника, нажмите "Закончить многоугольник".

Интерфейс:

Основное окно:

  • График: Отображение координатной плоскости с возможностью добавления объектов.
  • Элементы управления:
    • Поля ввода для координат отрезков и окна отсечения.
    • Кнопки для добавления объектов, отсечения и очистки графика.

Пример ввода:

  • Отрезок: x1 y1 x2 y2 (например, -10 -5 15 20).
  • Окно отсечения: Xmin Ymin Xmax Ymax (например, -15 -15 15 15).

Алгоритмы:

  1. Алгоритм Коэна-Сазерленда: Используется для отсечения отрезков относительно прямоугольного окна. Делит координатное пространство на области с помощью кодов положения и определяет видимость отрезков.

  2. Алгоритм Сазерленда-Ходжмана: Применяется для отсечения многоугольников. Проверяет каждую сторону многоугольника относительно окна и формирует новый отсеченный многоугольник.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages