C/Visual C - Necesito ayuda con grafica por favor

 
Vista:

Necesito ayuda con grafica por favor

Publicado por Manuel Persy (1 intervención) el 07/06/2001 22:04:43
Mi consulta es que hice un cuadrado en turbo c++ , y lo necesito rotar para la derecha e Izquierda, y no se me ocurre les rogaria que me ayudaran porfavor

Manuel Persy
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Necesito ayuda con grafica por favor

Publicado por Kreuzigen 2 (5 intervenciones) el 07/06/2001 22:11:00
Mira, lo que necesitas es investigar algo sobre Graficacion por Computadora (me parece que el autor de este libro es Donald H. Sanders) , necesitas buscar las matrices de rotacion para un punto o en su defecto las ecuaciones para lo mismo, con estas, puedes hacer una funcion a la que le pases el punto que deseas rotar y te regrese la nueva posicion del punto, el lado para el cual debe girar lo puedes controlar mediante la funcion getch y checando los codigos para las flechas del teclado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Necesito ayuda con grafica por favor

Publicado por José Luis (106 intervenciones) el 08/06/2001 09:40:45
Hola Manuel

Teóricamente debes hacerlo matricialmente (método deductivo), pero esto es pura formalidad, lo mas práctico (método inductivo) es recordar tus coordenadas polares y establecer una relaciión trigonométrica entre la primera posición y la segunda. ¿y esto como se hace?

Si inicialmente el punto P(x1,y1) se encuentra a t1 grados entonces:

x1 = r*cos(t1) ...(1)
y1 = r*sen(t1) ...(2)

Si finalmente el punto P(x,y) giro t grados (con respecto al origen) relativo a su posición anterior, entonces:

x = r*cos(t+t1) = r*cos(t1) * cos(t) - r*sen(t1) * sen(t) ...(3)
y = r*sen(t+t1) = r*cos(t1) * sen(t) + r*sen(t1) * cos(t) ...(4)

Reemplazando (1)y(2) en (3)y(4) obtenemos lo que deseamos:

x = x1*cos(t) - y1*sen(t) = x*cos(t) - y*sen(t) (Forma Recursiva)
y = x1*sen(t) + y1*cos(t) = x*sen(t) + y*cos(t) (Forma Recursiva)

Bien, una vez que tenemos la fórmula de rotación, ahora rotar el cuadrado es mas sencillo todavía, solo tienes que rotar cada uno de los 4 vértices "t grados" y volver a unir los puntos con lineto y moveto. Recuerda que si t es positivo el giro será antihorario (o lo que le llamas rotación izquierda, que está muy mal dicho) y viceversa.

Si necesitas mas información puedes visitar mi WEB (ver firma), tengo algunos programas para el turbo C para rotación 2D y 3D.

Espero te sea de ayuda.

Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar