draw a rectangle and rotate it to a specific angle c++ pdf
#include <iostream>
#include <cmath>
#include <iomanip>
struct Point{
double x = 0;
double y = 0;
Point(double aX = 0, double aY = 0){
x = aX;
y = aY;
}
void translate( double aX, double aY ){
x += aX;
y += aY;
}
// ANTI-CLOCKWISE ROTATION OF Point ABOUT ORIGIN
void rotate( double aAngle ){
double xTemp = x;
double yTemp = y;
double theta = aAngle * M_PI / 180;
double c = cos( theta );
double s = sin( theta );
x = xTemp * c - yTemp * s;
y = xTemp * s + yTemp * c;
}
};
std::ostream & operator<<(std::ostream & out, const Point & aPoint){
out << std::fixed << std::setprecision(2) << "(" << aPoint.x << ", " << aPoint.y << ")";
return out;
}
int main(){
Point triangle[] = {Point(2,1), Point(3,3), Point(4,2)};
Point geometric_center(0,0);
for(auto i:triangle){
geometric_center.x += i.x/3;
geometric_center.y += i.y/3;
}
std::cout << "Geometric center: " << geometric_center << '\n';
for(auto i:triangle){
std::cout << i << " -> ";
i.translate(-geometric_center.x, -geometric_center.y);
i.rotate(90);
i.translate(geometric_center.x, geometric_center.y);
std::cout << i << '\n';
}
return 0;
}