Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
TGC : Centro de rotación de un Mesh
Autor Mensaje
Mauro_bilo Sin conexión
Empleado de Fotocopiadora
Tool
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 44
Agradecimientos dados: 48
Agradecimientos: 14 en 6 posts
Registro en: Sep 2010
Facebook
Mensaje: #1
TGC : Centro de rotación de un Mesh Trabajo practico Técnicas de Gráficos por Computadoras
Alguien que esté cursando o que haya cursado Técnicas de gráficos por computadora, tienen idea como cambiar el centro de rotación de un TgcMesh?
Les comento un poco más... estamos haciendo un TP que consiste en un juego que posee un barco. Como todos saben, cuando un barco gira, lo hace respecto a su popa... el problema es que actualmente la malla me gira respecto a la proa y no se parece en nada al movimiento que deseo. Estuve mirando la declaración de la clase y vi que el método rotateY(float angle) gira la malla respecto al plano XZ que vendría a ser el mar... pero lo está haciendo respecto al punto indicado y no es lo que quiero. Existe algún setter para cambiar ese punto de rotación? Alguien se topó con un problema similar?. Gracias de antemano!
29-05-2014 15:21
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Jarry Sin conexión
Anomalía de Belady
I know teh codez
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.970
Agradecimientos dados: 179
Agradecimientos: 202 en 85 posts
Registro en: May 2008
Mensaje: #2
RE: TGC : Centro de rotación de un Mesh
hasta donde se, el framework no lo hace solo.
lo que tenes que hacer es armarte tu propia matriz de rotacion. para que gire en base a un pivote arbitrario.

no tengo a mano la definicion de esa matriz, a la noche me fijo si la encuentro.

No estoy necesariamente de acuerdo con lo que dice en el post de arriba
[Imagen: 971aa6599664453c05cb3e42d58bbc0eo.jpg]
29-05-2014 15:37
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Jarry recibio 1 Gracias por este post
Mauro_bilo (19-11-2014)
AkhAnubis Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 77
Agradecimientos dados: 1
Agradecimientos: 78 en 19 posts
Registro en: Jul 2011
Mensaje: #3
RE: TGC : Centro de rotación de un Mesh
Dado que la rotación siempre se realiza respecto del 0,0,0 actual, para rotar en base a otro centro de rotación que no sea el 0,0,0, vas a tener que:

1) trasladar la malla en base al vector centro actual - nuevo centro (centro actual debería ser 0,0,0 si no hacés nada raro antes de esta transformación).
2) realizar la rotación.
3) trasladar la malla a su posición inicial.

Ej:

Vector3 nuevoCentro = new Vector3(0, 2, 0);
Matrix m = Matrix.Translation(-nuevoCentro) * Matrix.RotationZ(anguloRotación) * Matrix.Translation(nuevoCentro);

Si querés probar un poco, reemplazá la línea 108 del ejemplo Transformations.cs por:
Vector3 nuevoCentro = new Vector3(0, 2, 0);
matRotate = Matrix.Translation(-nuevoCentro) * Matrix.RotationZ((float)GuiController.Instance.Modifiers["rotationZ"]) * Matrix.Translation(nuevoCentro);

Saludos!

(Este mensaje fue modificado por última vez en: 30-05-2014 17:26 por AkhAnubis.)
30-05-2014 12:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] AkhAnubis recibio 1 Gracias por este post
Mauro_bilo (19-11-2014)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.