#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <vector>
#include <ctime>
#include "figures.h"
int main() {
//создаём вектор указателей на фигуры и заполняем его случайными фигурами
srand((unsigned int)time(NULL));
const int nFigures = 10;
std::vector<Figure *> figures (nFigures);
for (int i = 0; i < nFigures; i++) {
if (rand() % 2 == 0) {
figures[i] = new Circle(Figure::Point(rand()%100, rand()%100), rand()%100+1, rand()%100);
} else {
//Создаём вектор из точек аля многоуольник
std::vector<Figure::Point> vPolygon;
int vertices = rand()%100;
for (int j = 0; j < vertices; j++){
vPolygon.push_back(Figure::Point(rand()%100,rand()%100));
}
//Замкнём ломаную
vPolygon.push_back(Figure::Point(vPolygon[0].x,vPolygon[0].y));
figures[i] = new Polygon(vPolygon, rand()%100);
}
}
//найдём суммарную площадь всех фигур
double sumPlace = 0.0;
for (int i = 0; i < nFigures; i++) {
sumPlace += figures[i]->place();
}
std::cout << std::fixed << std::setprecision(6) <<
"Sum place = " << sumPlace << std::endl;
//найдём суммарный периметр всех фигур
double sumPerimetr = 0.0;
for (int i = 0; i < nFigures; i++) {
sumPerimetr += figures[i]->perimetr();
}
std::cout << std::fixed << std::setprecision(6) <<
"Sum Perimetr = " << sumPerimetr << std::endl;
//уничтожим все объекты (хотя при завершении программы память и так очистится)
for (int i = 0; i < nFigures; i++) {
delete figures[i];
}
/*
Figure *f = new Circle(Figure::Point(100,100),50,1);
std::cout << *f;
*/
/*
Figure *f = new Triangle(Figure::Point(rand()%100,rand()%100),Figure::Point(rand()%100,rand()%100),Figure::Point(rand()%100,rand()%100),rand()%100);
std::cout << *f;
*/
/*
//объявляем вектор из точек
std::vector<Figure::Point> vPolygon;
int vertices = rand()%100;
for (int j = 0; j < vertices; j++){
vPolygon.push_back(Figure::Point(rand()%100,rand()%100));
}
//Замкнём ломаную
vPolygon.push_back(Figure::Point(vPolygon[0].x,vPolygon[0].y));
Figure *f = new Polygon(vPolygon, rand()%100);
std::cout << *f;
*/
system("PAUSE");
return 0;
}