Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Система класів для опису плоских геометричних фігур

Реферат Система класів для опису плоских геометричних фігур





Реалізація функцій класів

Розглянемо реалізацію функцій для класу Rectangle.

Функція Move додає передані їй параметри до координат кутів прямокутника.

Функція Rotate використовує функції, описані в теоретичній частині для повороту координат кутів прямокутника.

Функція Resize обчислює вектор - напрям кожної сторони прямокутника (що важливо для випадку, коли його боку не паралельні осям координатної площини), нормалізує його (призводить до одиничного), множить на збільшення сторони (передане як параметра). Отриманий вектор додається (або віднімається - завжди розтягуючи прямокутник назовні) до координат кута. В результаті отримуємо нові координати кута.

Опції FindSquare і FindPerimeter знаходить площу і периметр відповідно за формулами, представленим у теор. частини.

Відмінністю в реалізації функцій квадрата є оновлення поля side - сторона, а також однаковим збільшенням розмірів по обох напрямках.

Розглянемо реалізацію функцій для класу Circle.

Функція Move додає передані їй параметри до координати центру кола.

Функція Rotate порожня. Обертання кола ніяк не відіб'ється на наших параметрах.

Функція Resize збільшує радіус на передане їй значення.

Опції FindSquare і FindPerimeter знаходить площу і периметр відповідно за формулами, представленим у теор. частини.

Функція Main

У функції main реалізовано многоступенчатное текстове меню за принципом введення номера пункту меню. Меню дозволяє створити нову фігуру, отримати детальну інформацію про всіх фігурах, присутніх на площині в даний момент і виконати над ними всі реалізовані вище операції. Окремим пунктом меню є пошук рішення задачі, а саме кола мінімального радіуса, що описує всього фігури, наявні на площині.

Пошук найменшого кола, що описує всі фігури

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

Прямокутник-прямокутник. У цьому випадку потрібно обчислити відстань від кожної точки перший прямокутника до кожної точки другого прямокутника і вибрати найбільше з них.

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

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

Звернемо увагу, що, завдяки спадкуванню класу Quadrate від класу Rectangle, немає необхідності розглядати квадрат як окрему фігуру. Квадрат розглядається в якості прямокутника, так як має аналогічну структуру (4 кута).

Кожен раз, отримуючи максимальну відстань для двох фігур, порівнюємо його з збереженим у змінній і, в разі переваги перших, записуємо його в цю змінну. У підсумку отримаємо максимальну відстань між двома точками всіх фігур на площині, що буде діаметром шуканого кола. Центром його буде середина відрізка, що з'єднує ці дві максимально віддалені точки.


Тестування


Тест 1.

Створимо два кола: r=30, c=(- 25; 30) і r=20, c=(20; 70).

Виконаємо для них пошук мінімального описує кола.

Результат:


Малюнок 1. Скріншот першого тесту


Тест 2.

Квадрат (- 80, - 10), сторона=20

Прямокутник (- 35, - 10), (0, - 25)

Коло r=20, c=(30, 50)


Малюнок 2. Скріншот другого тесту


Тест 3.

Квадрат (- 15, - 40), сторона 10

Квадрат (15, 15), сторона 5

Прямокутник (- 20, - 5), (10, - 15)


Малюнок 3. Скріншот третій тесту

Тест 4.

Коло r=40, c=(- 15, 5).

Результат:


Малюнок 4. Скріншот четвертого тесту


Тест 5.

Коло r=25, c=(15, 20).

Прямокутник (5,40), (25, 15)

Квадрат (15, 20), сторона 15.

Тест 6.

Створимо прямокутник (15, 75), (25, 25) і знайдемо описує коло.


Малюнок 6.1. Скріншот шостого тіста до повороту


Повернемо прямокутник на кут 30 градусів.


Малюнок 6.2. Прямокутник повернули на 30 градусів


Знову знайдемо описує коло.


Малюнок 6. Скріншот шостого тесту


Висновок


Проробивши курсову роботу, я придбав навички об'єктно-орієнтованого програмування, а саме: успадкування класів, використання абстрактних класів, віртуальних функцій. У ході роботи були вирішені кілька геометричних задач як з використанням го...


Назад | сторінка 3 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Формування комунікаційної політики (на прикладі продуктів "Пепсі-кола& ...
  • Реферат на тему: Тест "Малюнок сім'ї"
  • Реферат на тему: Схемні функції і частотні характеристики лінійного електричного кола
  • Реферат на тему: Визначення точки рівноваги прибутку і точки беззбитковості експлуатації вер ...
  • Реферат на тему: Методи математичного опису та розрахунку складної лінійного електричного ко ...