Esta página está en construcción: perdonen los errores, repeticiones y temas inacabados. This page is being developed: I am sorry for errors, duplications and unfinished subjects. Proyecto Danzante. Representación de esqueletos III (incluido en Danzante) Que habría que llamar 0 en lugar de II, tras redactar Representacion de esqueletos y II. Nos separamos aún más de la representación que hace Kinect, que es aproximar o simular la figura, el esqueleto, según hace la vista y óptica normales: la alejado es más pequeño y viceversa. Pero realmente el esqueleto ofrecido por Kinect emplea coordenadas absolutas en metros. Es decir las distancias son idénticas sea cual sea la lejanía de danzante. Usamos pues ahora la funciónpunto = SkeletonPointToScreen_crudo(skelpoint)Donde 'crudo' alude a esas copoerdanas primitovas en metros.
Ahora aplicamos las ecuaciones.
'parece que es en metrospunto.X = 250 * skelpoint.X + 320
punto.Y = 240 - 250 * skelpoint.Y
'parece que es en metros
donde no aparece la coordenada z (es un dibujo, en el plano) pese a ser ofrecida. Podemos usarla para escalar la figura, si fuera deseable. Y, además, se utiliza su valor par dibujar el esqueleto de perfil. Y, de hecho, es lo que hace la función original de Microsoft: escala para adecuar la representación a una visión real e intuitiva, como decíamos.
La constante 250 es arbitraria: son los pixeles que corresponden a 1 metro. Si se aumenta, aumenta la figura y viceversa. precisamente habamos empezado con 300, y reducimos ahora a 250 por esa razón.
Public Function SkeletonPointToScreen_crudo(ByVal skelpoint As SkeletonPoint) As Point ' Convert point to display space. Dim punto As Point punto.X = 250 * skelpoint.X + 320 'parece que es en metros punto.Y = 240 - 250 * skelpoint.Y 'parece que es en metros Return punto End Function |
xpantalla = 320 + k*xespacio yxpantalla = 240 - k*yespacio zpantalla = k*zespaciosegún se deduce de las valores: '------------------------------------------------------------------------------------ coordenadas cambio screen SkeletonPointToScreenAmbos_sin_corte