Geometry Polygons
← Back
Basic Info
Computer Programming 1
└── Lecture 27 LAB Contacts Management
└── Geometry Polygons.cpp
Preview
using namespace std;
#include <iostream>
#include <cmath>
struct vertex{
float pos[2];
vertex *next = NULL;
};
vertex *polygon_ini();
float polygon_p(vertex*);
float point_distance(vertex*,vertex*);
int main(int argc, char *argv[]){
vertex *P = polygon_ini();
cout << "Perimeter: " << polygon_p(P) << endl;
return 0;
}
vertex *polygon_ini(){
vertex *P = new vertex();
cout << "Please input the values of a polygon:" << endl;
vertex *p = P;
for(int i=0; i<5; i++){
cout << " - Vertex " << i << ": " << endl;
cout << " - X: ";
cin >> p->pos[0];
cout << " - Y: ";
cin >> p->pos[1];
p->next = new vertex();
p = p->next;
}
delete p;
return P;
}
float polygon_p(vertex *P){
int res = 0;
vertex *p = P;
for(int i=0; i<4; i++){
res += point_distance(p,p->next);
p = p->next;
}
res += point_distance(p,P);
return res;
}
float point_distance(vertex *p1, vertex *p2){
return sqrt(
(p1->pos[0]-p2->pos[0])*(p1->pos[0]-p2->pos[0])
+(p1->pos[1]-p2->pos[1])*(p1->pos[1]-p2->pos[1])
);
}