Побудов кривої Безьє в середовищі програмування delphi

У представленій delphi-програмі, за допомогою досить простого інтерфейсу, користувачеві надається можливість задавати, переміщати та видаляти (з використанням миші) контрольні точки, за якими здійснюється прорисовка кривої Безьє (для цього необхідно щоб користувач задав хоча б три точки).

Головне вікно проекту "Побудова кривої Безьє"

На рисунку що міститься вище, показаний зовнішній вигляд запущеної програми. Як видно з рисунка, у верхній частині вікна містяться елементи управління, за допомогою яких, власне, і здійснюється побудова кривої. Розглянемо призначення кожного з них більш детально.

Отже, контрольні та опорні точки кривої задаються за допомогою кнопки «Додати точку» (компонент типу TSpeedButton, що розміщується на панелі типу TPanel) та графічного редактора (компонент типу TImage). Видалення та зміна положення розміщених на формі точок, здіснюється за допомогою кнопок «Видалити точку» та «Перемістити точку» відповідно (компоненти типу TSpeedButton). Побудова кривої Безьє реалізується за допомогою кнопки «Побудувати криву Безьє» (компонент типу TButton). І підготовка проекту до нової побудови здійснюється за допомогою кнопки «Видалити криву» (компонент типу TButton).

Зауваження: мінімальне та максимальне число контрольних та опорних точок, по яких, в розглядуваному delphi-проекті, може бути здійснена побудова кривої Безьє, є три та десять відповідно.

Скачати delphi-проект Побудова кривої Безьє.

4 коментаря

  1. А як прибрати обмеження по точках, щоб крива будувалася то N – кількостей точок?

  2. Доброго вечора Костянтин. Для того, щоб зняти обмеження на побудову точок необхідно змінити верхню гряницю масиву VECT та видалити з програмного коду наступний рядок: if (nodes_count = 10) then exit;

  3. Все зробив, але крива не правильно відображається коли більше 12 точок

  4. Зрозуміло Костянтин. Причиною некоректної побудови кривої являється той факт, що факторіал числа яке являється більшим за дванадцять настільки великий, що перевищив максимальне значення для змінної типу Integer. Для того, щоб крива Безьє відображалась правильно, необхідно змінити тип результату функції factorial та всіх змінних яким він присвоюється на тип Int64.

Залишити коментар

Your email address will not be published. Required fields are marked *

*