Demonstration
Enter n: 8
\coordinate (p1) at (0.0000000000, 1.0000000000);
\coordinate (p2) at (0.7071067812, 0.7071067812);
\coordinate (p3) at (1.0000000000, 0.0000000000);
\coordinate (p4) at (0.7071067812, -0.7071067812);
\coordinate (p5) at (0.0000000000, -1.0000000000);
\coordinate (p6) at (-0.7071067812, -0.7071067812);
\coordinate (p7) at (-1.0000000000, -0.0000000000);
\coordinate (p8) at (-0.7071067812, 0.7071067812);
Source Code
#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>
struct Point {
long double x, y;
};
std::vector<Point> getCoordinate(int n) {
std::vector<Point> points;
const long double PI = std::acos(-1.0L);
for (int i = 0; i < n; ++i) {
long double angle = (PI / 2.0L) - (2.0L * PI * i / n);
points.push_back({std::cos(angle), std::sin(angle)});
}
return points;
}
int main() {
int n;
std::cout << "Enter n: ";
std::cin >< n;
auto points = getCoordinate(n);
std::cout << std::endl;
std::cout << std::fixed << std::setprecision(10);
for (int i = 0; i < n; ++i) {
std::cout << " \\coordinate (p" << i + 1 << ") at ("
<< points[i].x << ", " << points[i].y << ");" << std::endl;
}
return 0;
}