Rotacion de figuras gráficas
Hola!!
Tengo un problema y es el siguiente... necesito rotar una figura(un rectangulo) unos 20º pero no tengo ni idea de como hacerlo.
Mi compilador es el borland c++ 3.1
Les cuento además que he probado utilizar matrices de rotaciones horarias, pero no me da el resultado correcto porque rota el rectangulo pero lo traslada a cualquier parte de acuerdo al ángulo que le ponga.
Si me pueden responder se los agradezco un montón...
Desde ya muchas gracias!!!
Tengo un problema y es el siguiente... necesito rotar una figura(un rectangulo) unos 20º pero no tengo ni idea de como hacerlo.
Mi compilador es el borland c++ 3.1
Les cuento además que he probado utilizar matrices de rotaciones horarias, pero no me da el resultado correcto porque rota el rectangulo pero lo traslada a cualquier parte de acuerdo al ángulo que le ponga.
Si me pueden responder se los agradezco un montón...
Desde ya muchas gracias!!!
para rotar una rectangulo alrededor de su centro de gravedad (interseccion de las diagonales) :
[a] : borrar el rectangulo inicial.
[b]: trasladar el rectangulo de tal manera que el centro de la figura coincida con el centro de coordenadas (0,0)
[c] : rotar el rectangulo con las formulas :
x1 = x*cos(alpha) - y*sin(alpha)
y1 = x*sin(alpha) + y*cos(alpha)
alpha = angulo de rotacion en radianes, medido en
sentido contrario de las agujas del reloj.
[d] : retornar el rectangulo tal que su centro vuelva a la posicion inicial.
[e] : dibujar el rectangulo girado (hay que dibujarlo por lineas segun las nuevas coordenadas).
[a] : borrar el rectangulo inicial.
[b]: trasladar el rectangulo de tal manera que el centro de la figura coincida con el centro de coordenadas (0,0)
[c] : rotar el rectangulo con las formulas :
x1 = x*cos(alpha) - y*sin(alpha)
y1 = x*sin(alpha) + y*cos(alpha)
alpha = angulo de rotacion en radianes, medido en
sentido contrario de las agujas del reloj.
[d] : retornar el rectangulo tal que su centro vuelva a la posicion inicial.
[e] : dibujar el rectangulo girado (hay que dibujarlo por lineas segun las nuevas coordenadas).
