12.07.2015 Views

Universidad de - Escuela Superior de Informática (UCLM ...

Universidad de - Escuela Superior de Informática (UCLM ...

Universidad de - Escuela Superior de Informática (UCLM ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Módulo <strong>de</strong> procesamientoCAPÍTULO 5. ARQUITECTURA DE ATRAVELAlgoritmo 5 Calcular si un punto está en el interior <strong>de</strong> un BB.Entrada: Un punto 3D P(P x ,P y ,P z ) y un bounding box B(V 0 ,V 1 ,V 2 ,V 3 ,V 4 ,V 5 ,V 6 ,V 7 )<strong>de</strong>finido por ocho vértices. Don<strong>de</strong> cada vértice es un punto en el espacio 3D <strong>de</strong> la formaV = V x ,V y ,V z .Salida: cierto Si el punto P está en el interior <strong>de</strong>l bounding box y falso en caso <strong>de</strong> que estéfuera <strong>de</strong>l bounding box.para i = 0 hasta 6 hacerCalcular el vector normal <strong>de</strong> la cara.Calcular vector entre un vértice <strong>de</strong> la cara y el punto central <strong>de</strong> ésta.Calcular el coseno <strong>de</strong>l ángulo que forma estos dos vectores.si El coseno <strong>de</strong>l ángulo es mayor que cero entoncesMultiplicar por -1 todos valores <strong>de</strong>l vector normal calculado.fin sisi Producto escalar(B.caras(i).normal(), (P - B.caras(i).vertice)) >0 entonces<strong>de</strong>volver falsofin sifin para<strong>de</strong>volver ciertofusión <strong>de</strong> dos trayectorias completas. Es <strong>de</strong>cir, la fusión <strong>de</strong> una trayectoria pue<strong>de</strong> <strong>de</strong>finirsecomo la consecuencia <strong>de</strong> una serie <strong>de</strong> fusiones <strong>de</strong> pares <strong>de</strong> BB. Un ejemplo <strong>de</strong> fusión <strong>de</strong>dos BB pue<strong>de</strong> observarse en la figura B.5.En la figura B.5 se pue<strong>de</strong> observar como se realiza la fusión <strong>de</strong> dos BB vistos <strong>de</strong>s<strong>de</strong> unaperspectiva <strong>de</strong>s<strong>de</strong> el eje z (vista <strong>de</strong> pájaro). La principal función realizada en este algoritmoes englobar a los dos BB que tienen similitud y juntarlos en un BB mayor que englobe a losdos. De esta forma, lo que se consigue es que cuanto mayor sea el número <strong>de</strong> trayectoriasque se fusionen mayor es la fiabilidad <strong>de</strong> clasificación <strong>de</strong>l comportamiento <strong>de</strong> un objetosobre la escena. Para la generación <strong>de</strong>l bounding box resultante <strong>de</strong> la fusión <strong>de</strong> los dos BBinicialmente proporcionados, es necesario obtener los valores máximos y mínimos en cadauno <strong>de</strong> los ejes, para cada uno <strong>de</strong> los dos BB iniciales. Posteriormente se calcula cuál <strong>de</strong> losdos BB tiene mayor y menor valor en el eje <strong>de</strong> coor<strong>de</strong>nadas X , Y y Z. Una vez obtenidoslos valores máximo y mínimos pertenecientes al BB resultante. Se calculan los vértices <strong>de</strong>lBB resultante siguiendo la normativa <strong>de</strong> vértices explicada en la sección 5.2.4. Se <strong>de</strong>vuelveel BB resultante.El pseudocódigo <strong>de</strong>l algoritmo es el siguiente:112

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!