Завдання:
1.
+ Розробити систему класів для геометричних фігур: «Фігура», «Точка», «Коло» «Коло зафарбоване», «Еліпс», «Конус», «Усічений конус».
2. Визначте в цих класах методи, які:
+ переміщують фігуру по площині (на задану відстань або в потрібну позицію);
+ масштабують фігуру;
+ обчислюють і повертають площу фігури, периметр;
+ повертають рядок символів, що відображає ім'я класу і стан об'єкта (його основні характеристики);
+ малюють фігуру в консолі або на формі (для об'ємних фігур досить проекції, наприклад, ізометричної або діметріческой);
3.
+ Визначте в ваших класах властивості і індексатори (хоча б в деяких класах).
4.
+ Класи повинні бути пов'язані відношенням спадкування (там, де це має сенс).
+ Деякі класи необхідно зробити абстрактними, а деякі методи – віртуальними.
+ Повинен бути хоча б один поліморфний клас.
+ Максимально виключіть дублювання коду (поля, методи, реалізація).
5.
+ Створіть клас «Зображення», який має своє положення на площині і розмір, та володіє колекцією різних фігур. Елементами колекції можна буде зробити базовий поліморфний клас (таким чином, в одній колекції можна буде зберегти всі фігури зображення).
6. У класі «Зображення» визначте методи:
+ які повертають сумарну площу фігур, сумарний периметр;
+ який пересуває всі фігури всередині зображення;
+ який пересуває зображення;
+ який встановлює масштаб зображення (що змінює його розмір разом з фігурами зі збереженням пропорцій);
+ що повертає повний стан зображення у вигляді рядка;
+ що об'єднує два зображення;
+ що малює все фігури в консолі або на формі;
+ які зберігають і завантажують зображення з файлу;