derelict
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: #include "Polygon.h" #include <math.h> Polygon::Polygon() { n = 4; vertices = new Point[n]; vertices[1].SetY(1); vertices[2].SetX(1); vertices[2].SetY(1); vertices[3].SetX(1); } Polygon::Polygon(const Polygon& polygon) { n = polygon.GetVerticiesCount(); vertices = new Point[n]; for(int i = 0; i < n; i++) { vertices[i] = polygon[i]; } } Polygon::Polygon(Point *points, int _n) { n = _n; vertices = new Point[n]; for(int i = 0; i < n; i++) { vertices[i].SetX(points[i].GetX()); vertices[i].SetY(points[i].GetY()); } } Point& Polygon::operator[](int i) const { if(i >= 0 && i < n) { return vertices[i]; } else { return *(new Point()); } } int Polygon::GetVerticiesCount() const { return n; } Polygon::operator float() { float perimeter = 0; for(int i = 0; i < n; i++) { perimeter += pow(pow((double)(vertices[(i + 1) % n].GetX() - vertices[i].GetX()), 2) + pow((double)(vertices[(i + 1) % n].GetY() - vertices[i].GetY()), 2.0), 0.5); } return perimeter; } ostream& operator<<(ostream& out, const Polygon& polygon) { out<<"{"; int n = polygon.GetVerticiesCount(); for(int i = 0; i < n; i++) { out<<"{"<<polygon[i].GetX()<<", "<<polygon[i].GetY()<<"}"; if(i != n - 1) { out<<", "; } } out<<"}"; return out; } | | Всего записей: 232 | Зарегистр. 11-06-2006 | Отправлено: 23:31 23-11-2009 | Исправлено: derelict, 23:36 23-11-2009 |
|