Universidad de - Escuela Superior de Informática (UCLM ...
Universidad de - Escuela Superior de Informática (UCLM ... Universidad de - Escuela Superior de Informática (UCLM ...
Módulo de procesamientoCAPÍTULO 5. ARQUITECTURA DE ATRAVELÁrea de ColisiónBounding boxclave ABounding boxclave BZYXFIGURA 5.4: Representación de colisión de dos bounding box (ver en Anexo B imagen a color).El pseudocódigo de la función de colisión es:Algoritmo 4 Calcular la existencia de colisión entre dos BBEntrada: Dado dos bounding box B1(V 0,V 1,V 2,V 3,V 4,V 5,V 6,V 7) yB2(V 0,V 1,V 2,V 3,V 4,V 5,V 6,V 7). Cada vértice es un punto en el espacio 3D dela forma V = (V x ,V y ,V z ).Salida: cierto si existe colisión y falso si no existe colisión.Obtener el valor mínimo del eje de coordenadas X de B1, min x .Obtener el valor máximo del eje de coordenadas X de B1, max x .Obtener el valor mínimo del eje de coordenadas Y de B1, min y .Obtener el valor máximo del eje de coordenadas Y de B1, max y .Obtener el valor mínimo del eje de coordenadas Z de B1, min z .Obtener el valor máximo del eje de coordenadas Z de B1, max z .Obtener el valor mínimo del eje de coordenadas X de B2, min_x_2.Obtener el valor máximo del eje de coordenadas X de B2, max_x_2.Obtener el valor mínimo del eje de coordenadas Y de B2, min_y_2.Obtener el valor máximo del eje de coordenadas Y de B2, max_y_2.Obtener el valor mínimo del eje de coordenadas Z de B2, min_z_2.Obtener el valor máximo del eje de coordenadas Z de B2, max_z_2.si (max_x < min_x 2 ) ó (min_x > max_x_2) ó (max_y < min_y_2) ó (min_y > max_y_2)ó (max_z < min_z_2) ó (min_z > max_z_2) entoncesdevolver falsosi nodevolver ciertofin si.La funcionalidad de este algoritmo consiste en calcular el máximo y mínimo de cada BBen cada eje de coordenadas. Una vez que se ha obtenido el valor máximo y mínimo de cadacoordenada se realizan las siguientes comprobaciones para conocer si dos BB colisionan.108
CAPÍTULO 5. ARQUITECTURA DE ATRAVELMódulo de procesamiento¿Cómo se se conoce si existe colisión?, se realiza una comparación de los valores máximosy mínimos de cada BB de la siguiente manera. Para cada uno de los valores máximos ymínimos de los ejes se puede establecer que: Si el máximo valor del BB_1 en el eje decoordenadas X es menor que el mínimo valor del BB_2, entonces es imposible que existacolisión entre dos BB (ver figura 5.5).Bounding boxclave ABounding boxclave Ba_x maxb_x minZYXFIGURA 5.5: No existe colisión si a x m ax es menor que b x m in..Al igual que tampoco puede existir colisión entre dos BB si el valor mínimo de Xdel BB_1 es mayor que el máximo valor de X del BB_2. Se puede ver un ejemplo en lafigura 5.6.Bounding boxclave BBounding boxclave Ab_x mina_x maxZYXFIGURA 5.6: No existe colisión si a x m in es mayor que b x m ax.De la misma forma ocurre con los dos ejes restantes tanto con Y como con Z. Ya quesi se el valor máximo de Y perteneciente al BB_1 es menor que el valor mínimo en Y delBB_2 es imposible que exista colisión. Al igual que ocurre si el valor mínimo de Y del109
- Page 79 and 80: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 81 and 82: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 83 and 84: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 85 and 86: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 87 and 88: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 89 and 90: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 91 and 92: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 93 and 94: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 95 and 96: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 97 and 98: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 99 and 100: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 101 and 102: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 103: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 106 and 107: Metodología de desarrolloCAPÍTULO
- Page 108 and 109: Tecnologías y herramientas utiliza
- Page 110 and 111: Tecnologías y herramientas utiliza
- Page 113 and 114: 5Arquitectura de AtravelEn este cap
- Page 115 and 116: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 117 and 118: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 119 and 120: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 121 and 122: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 123 and 124: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 125 and 126: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 127 and 128: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 129: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 133 and 134: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 135 and 136: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 137 and 138: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 139 and 140: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 141 and 142: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 143 and 144: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 145 and 146: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 147 and 148: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 149 and 150: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 151 and 152: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 153 and 154: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 155 and 156: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 157 and 158: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 159 and 160: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 161 and 162: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 163 and 164: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 165 and 166: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 167 and 168: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 169 and 170: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 171 and 172: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 173 and 174: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 175 and 176: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 177 and 178: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 179 and 180: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
Módulo <strong>de</strong> procesamientoCAPÍTULO 5. ARQUITECTURA DE ATRAVELÁrea <strong>de</strong> ColisiónBounding boxclave ABounding boxclave BZYXFIGURA 5.4: Representación <strong>de</strong> colisión <strong>de</strong> dos bounding box (ver en Anexo B imagen a color).El pseudocódigo <strong>de</strong> la función <strong>de</strong> colisión es:Algoritmo 4 Calcular la existencia <strong>de</strong> colisión entre dos BBEntrada: Dado dos bounding box B1(V 0,V 1,V 2,V 3,V 4,V 5,V 6,V 7) yB2(V 0,V 1,V 2,V 3,V 4,V 5,V 6,V 7). Cada vértice es un punto en el espacio 3D <strong>de</strong>la forma V = (V x ,V y ,V z ).Salida: cierto si existe colisión y falso si no existe colisión.Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas X <strong>de</strong> B1, min x .Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas X <strong>de</strong> B1, max x .Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Y <strong>de</strong> B1, min y .Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Y <strong>de</strong> B1, max y .Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Z <strong>de</strong> B1, min z .Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Z <strong>de</strong> B1, max z .Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas X <strong>de</strong> B2, min_x_2.Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas X <strong>de</strong> B2, max_x_2.Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Y <strong>de</strong> B2, min_y_2.Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Y <strong>de</strong> B2, max_y_2.Obtener el valor mínimo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Z <strong>de</strong> B2, min_z_2.Obtener el valor máximo <strong>de</strong>l eje <strong>de</strong> coor<strong>de</strong>nadas Z <strong>de</strong> B2, max_z_2.si (max_x < min_x 2 ) ó (min_x > max_x_2) ó (max_y < min_y_2) ó (min_y > max_y_2)ó (max_z < min_z_2) ó (min_z > max_z_2) entonces<strong>de</strong>volver falsosi no<strong>de</strong>volver ciertofin si.La funcionalidad <strong>de</strong> este algoritmo consiste en calcular el máximo y mínimo <strong>de</strong> cada BBen cada eje <strong>de</strong> coor<strong>de</strong>nadas. Una vez que se ha obtenido el valor máximo y mínimo <strong>de</strong> cadacoor<strong>de</strong>nada se realizan las siguientes comprobaciones para conocer si dos BB colisionan.108