elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  formulas para rotar y escalar una figura??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: formulas para rotar y escalar una figura??  (Leído 4,098 veces)
GaLaN GaLaNaSo 3000

Desconectado Desconectado

Mensajes: 180


Aqui no voy a escribir nada. no se paque me sirve.


Ver Perfil
formulas para rotar y escalar una figura??
« en: 3 Agosto 2004, 04:15 »

Necsesito las formulas para escalar y rotar una figura alguien las sabe??????


el profe nos dijo que las busquemos como sea en algun libro de geometria analitica  :o pero no las pillo alguien las tiene por ahi o las conoce o sabe donde las puedo buscar ya puse en google pero me sale pura webadas.

quiero compartir un proyecto que estoy elaborando en JAva a qui se los dejo:


http://espanol.geocities.com/panderch/Graficador.zip

esta hecho completamente en Java y tengop que programar estos metodos pero no tengo las formulas.




class Rectangulo2d extends Figura2d
{
   void Escalamiento (int e)
   {
   
   }
}




y




   void Rotar (int n)
   {
      
   }


En línea

La ***** en este foro cada ves veo mas gente que quiere hackear hotmail o que pregunta webadas asi como tambien veo webones que se creen los dueños del foro se ponen a putear a diestra y siniestra Tal ves creeran que la gente asi los repetara. Ah esos malditos les digo que si no quieres aportar no aporten pero quedense callaos cabrones. Que ironia usar la violencia para resolver la violencia no!!
zheo


Desconectado Desconectado

Mensajes: 707



Ver Perfil
Re: formulas para rotar y escalar una figura??
« Respuesta #1 en: 3 Agosto 2004, 09:10 »

Te voy a dar las trigonométricas. Hay otras formas de hacerlo, más rapidas aunque menos precisas, pero dado que es una práctica no creo que la velocidad de ejecución sea un problema, así que tiraremos de razones trigonométircas (seno y coseno)

Escalar una figura es bien fácil. Simplemente has de multiplicar cada uno de sus puntos por un número. Si el número es positivo incrementas la figura, si está entre 0 y 1 la figura se hace más pequeña. Si es menor que cero haces un escalador y un reflejo, que no se si quieres que se produzca.

En 2D esto se representa por una matriz tal que así:
|n 0|
|0 n|
por la que has de multiplicar cada punto de la figura; y siendo n el factor de escalado.

Las rotaciones son un pelín más complejas, pero no mucho más:
      A|_--_  P
        |      /|
        |    /    |
        |  /       |
      O|/         | B
-------------------

El ejemplo lo pondré con un punto, aunque es muy dificil representar una rotación con ASCII :P Para un vector es lo mismo.
Supongamos que inicialmente tienes el vector OB y quieres rotarlo hasta crear OP (supongamos que las magnitudes de OP y OB en el gráfico son iguales ¿eh? )
Si tienes el ángulo BOP que llamaremos a veras que cos a = OB y sen a = AP luego las coordenadas del punto P son P(cos a, sen  a)
En este caso estár rotando sobre el eje X

Si quieres rotar sobre el eje Y las coordenadas son (-sen a, cos a) (dibújalo tú mismo sólo que ahora OB estará situado en el eje Y, y OP se situará en el 2º cuadrante)

Luego para rotar un punto en un ángulo a, simplemente  tienes que aplicar la transformación:
|cos a    sen a|
|-sen a   cos a|

En cualquier página de analítica lo verás, de todas maneras no es muy complicador hacer un dibujo y sacarlo tú mismo recordándo lo básico de trigonometría.
|


En línea

Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines