Bueno, mi conocimiento es algo limitado, si algo no se entiende, o si alguien ve una mejor
manera de hacerlo por favor comente n.n
Lo primero que necesitaría es tener la los puntos de la figura geométrica.
Creo una clase para eso:
Código c:
Ver originalClass point {
int x,y;
}
Class geo {
point ** points;
int point_count;
};
Vos después hacele los métodos para meter puntos, sobrecargar el =, Etc.
Basicamente,tenes una clase que representa una figura geométrica, y una clase que
representa un punto(compuesta por un X y un Y).
para rotarlo, tendrías que hacer algo asi:
Código c:
Ver originalvoid rotate(geo * g,int degrees)
{
int x;
point * replace_point = new point;
for (x = 0;x < g->point_count;x++){
replace_point
->x
= g
->points
[x
].
x * cos(degrees
) + g
->points
[x
].
y * sin(degrees
) replace_point
->y
= g
->points
[x
].
x * (sin(degrees
) * -1) + g
->points
[x
].
y * cos(degrees
) g->points[x] = *replace_point;
}
}
Esto Reemplazaría los puntos de la figura, por los puntos ya rotados.
Probalo y decime si funciona, por que guardo mis dudas, hace rato no hago esto.
Ojala funcione, y si no avisame, y trato de arreglarlo.
Abrazo!