Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/11/2011, 20:45
Avatar de sbcl
sbcl
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Como inclinar un rectangulo en c++ - POO

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 original
  1. Class point {
  2.    int x,y;
  3.    }
  4.  
  5. Class geo {
  6.    point ** points;
  7.    int point_count;
  8.    };

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 original
  1. void rotate(geo * g,int degrees)
  2. {
  3.    int x;
  4.    point * replace_point = new point;
  5.    for (x = 0;x < g->point_count;x++){
  6.     replace_point->x = g->points[x].x * cos(degrees) + g->points[x].y * sin(degrees)
  7.     replace_point->y = g->points[x].x * (sin(degrees) * -1) + g->points[x].y * cos(degrees)
  8.     g->points[x] = *replace_point;
  9.     }  
  10. }

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!