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.
Manejo de objetos virtuales
(incluido en
Danzante)
A raíz de
Danzante y
escultura se nos ocurre ele tam del
título: el esqueleto interaccopna, maneja, jiega con objetos virtuales, como
esferas, pirámides, prismas, trinagulos, y6 esculturas fefinidioa todos como
grafos.
La posición relativa de las
articulaciones, por ejemplo, las manos, determinan la posición y tamaño del
objeto virtual en el espaco.
Comencemos con esferas
¿Pero qué es un objeto virtual?
Lo definimos, tras una reflexión, como un par
de conjuntos, uno de puntos en el espacio (3D) y otro de ligaduras o conexiones
entre ellos. O sea
OV = (P,C)
P contiene un número en principio finito de puntos, definidos por
sus coordenadas respecto aun origen.
C contiene un numero en principio finito de conexiones entre esos
puntos, definidas mediante sus dos puntos extremos.
C debe contener conexiones que enlacen
todos los puntos, al menos una vez.
Esto no sería indispensable, pero conviene al carácter compacto que los
objetos naturales tienen en nuestra percepción general. Nada nos impide
entonces asociar dos o más objetos de manera solidaria en una conexión que
podemos llamar de alto nivel.
Y el conjunto P puede rambien moverse,
sometido a las operaciones en el espacio Giro y Translación. Puede o no
añadirse la Homotecia o Escalado, opracion que deforma, es decir, cambia la
forma dfel objeto que las dos anteriores no hacen.
Los puntos de P pueden moverse respecto a
los demás, pero, siempre en principio conservan la distancia mutua. es decir
las conexiones c tienen, cada una, una propiedad que es una distancia, en
principio, constante.
Los esqueletos y pseudoesqueletos que
aparecen en Danzante son, pues, un caso particular de OV. No es extraño,
pues los OV han sido concebidos como generalizaciones de ellos, con la
incorporación de las propiedades habituales de los llamados objetos
naturales en nuestra experiencia cotidiano: tazas, bicicletas, tijeras,
navajas... es decir, objetos con algún movimiento interno: sistemas
articulados..
La definición de C en cada caso ha puede
realizarse de dos maneras (al menos), ola primera consiste en una matriz de nxn
(n es el nimero de nudos o articulaciones) cuyos valores son 1 o 0 segun esté o
no conectados los puntos correspondientes a la fila y la columna. ES un a matriz
muy grande con poscos valores no nulos. Lo que llaman una matriz sparse, o sea,
esparciada o poco densa. Los valores son simples, de un bit.
En general, pues, en este caso:
C = (R) y OV
' = (P,R)
El segundo consiste en cubrir todas las
coneziones medinate ramas o mejor multiramas que son cadenas de nudos conectados
en cadena.
Los esqiletos kinect presentan estas cinco
ramas:
(0-1-2-3),(2-4-5-6-7),(2-8-9-10-11),(0-12-13-14-15),(0-16-17-18-19)correspondientes
a Columna, Miembros superiores derecho e inquierdo, Miembros inferiores derecho
e inquierdo, a las que añadimos por adorno o antropomorfismo (4,1,8), torso y
(13,0,17), muslos. Añadimos además una elipse en (3), cabeza, pero no la
incluimos en las ramas.
Esta definición no es única, y puede haber
redundancias. Por ejemplo la mera inversión del orden de los nudos en cada rama
produce el mismo efecto a efectode conxion y dibujo. Asimismo variando C o
P, varía el objeto. En el caso de que los cambionde P estén sometidos a
ligaduras, por ejemplo, que las distancias entre nodos conectados sea constante,
tenemos un objeto virtual articulado, OVA, que se definirá como:
OVA = ((P,L)C) o bien (P,L,C)
Se pasa de una a otra definiciones mediante
algoritmos sencillos.
Las multirramas son operativas porque para
dibujar las conexiones son utilizadas, en una sucesión que sigue la rama.
Se presentan, al dibujar, las situaciones de Comienzo de rama,
Continuación de
rama, Final de rama.
En la figura aparece un objeto virtual atípico.
Es curvilíneo, de una sola rama de longitud la de una circunferencia, cuyos puntos equidistan de otro fijo
una distancia llamada radio: es un aro, una
circunferencia agarrada por el danzante. Conviene recordar que el esqueleto ha
sido captado por la cámara Kinect, mientras que el aro es totalmente imaginario,
dibujado a partir de la posición de las manos del esqueleto. Las funciones que
proporcionan el radio y centro de la circunferencia son
P1 = pseudoskel11(7)
P2 = pseudoskel11(11)
r = 0.6 * Distancia(P1, P2)
y
Public
Function
centro_bola(P1 As
Point4D,
P2 As
Point4D,
r As
Double)
As
Point4D
Dim
C, D As
Point4D
', V As Vector3D, p11 As Point3D
Dim
ca, sa, st, ct
As
Double
'¡senoss cosenos de alfa y theta
Dim
dist, semicu, haltu
As
Double
'¡senoss cosenos de alfa y theta
D = Punto_medio(P1, P2)
dist = Distancia_xy(P1, P2)
' As As Double
semicu = dist / 2
ca = (P1 - P2).X / dist
sa = (P1 - P2).Y / dist
st = semicu / r
ct = Sqrt(1 - st ^ 2)
C.X = D.X + r * ct * sa
C.Y = D.Y - r * ct * ca
C.Z = D.Z + r
Return
C
End
Function
Podemos elegir un aro de radio
constante y sujetarlo con una sola mano (¿alternadamente?) cuando separamos
las manos una distancia mayor que el diámetro.
Vea ahora otro OVR en
Manejo de objetos virtuales II. Cubos.
Vuelta al Principio Última
actualización:
viernes, 08 de julio de 2016
Visitantes: