Está en la página 1de 6

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TOLUCA

SEP SES TecNM

INSTITUTO TECNOLÓGICO DE TOLUCA

“ALGORITMO DE COLISION”

MATERIA:
GRAFICACIÓN

CARRERA:
SISTEMAS COMPUTACIONLES

PRESENTA:
DANIEL RODRIGUEZ ROJAS

No. CONTROL:
18280137

PROFESOR:
ROCIO ELIZABETH PULIDO ALBA

METEPEC, ESTADO DE MÉXICO, 27 DE NOVIEMBRE DE 2020

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TOLUCA

Reporte de Prácticas
Practica No # Septiembre - Enero 27/11/2020
Título de la Práctica ____Algoritmo de colisión___ Periodo Escolar Fecha de Elaboración
Desarrollada por
No. Control Nombre del (los) Alumno(s)
18280137 Daniel Rodríguez Rojas

Introducción del tema tratado

Veremos el uso de las colisiones para la creación de figuras objetos 3d y en el uso de “Hit Box”
para su implementación en un videojuego o simulación.

Definición de Problema
¿Qué es la colisión de objetos 2D?
Objetivo General
¿Cómo funciona la colisión de Hit box?
Objetivos Específicos
Implementar el algoritmo de colisión a un código.

Resultado Explicado

¿Qué es la colisión de objetos en un ambiente 2D?; Una simplificación acerca de la


detección de colisiones, es y se refiere a cuando en una situación pre planificada, una
variedad de diferentes objetos que se encuentras en la pantalla o en cámara, se justan lo
suficiente entre sí haciendo o dando la ilusión de que están chocando y por medio de esta
acción, puedan reaccionar de alguna manera en particular. La colisión de objetos en 2D,
es conocida debido a su “baja complejidad algorítmica” y que pude ser usada en efectos
realistas o poco realistas, sin embargo, requiere cálculos para verificar que realmente
estén colisionando dos o más objetos.
Existe una gran variedad de métodos para realizar la colisión de objetos, de los cuales,
el siguiente es el más destacados:

 Método Bounding Box: Este método


consiste en colorar y hacer uso de hit box
circulares para cubrir un determinado
objeto, estos círculos representan las
dimensiones dentro de un algoritmo de
detección, un método sencillo. Sin
embargo, este método suele ser un tanto
complicado a la hora de ser implementado
a un objeto con dimensiones estiradas o
angostas, resulta poco práctico en estos
casos, por lo tanto, el uso de cajas
rectangulares se convierte una buena solución a estos problemas, y como se
mencionó anteriormente, a estas cajas de colisión se les ha bautizado como “Hit
Box”.

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TOLUCA

 Método por comprobación


de intersecciones de
vectores: Este método indica
la dirección y sentido del
movimiento de los objetos con
los lados de los objetos que
pueden tener colisión. Es decir,
una vez trazado dicho vector
desde cada uno de los
vectores de los lados que pueden colisionar con un objeto extra, así comprobando
si se intersecta con alguno de los lados del ya mencionado objeto.

 Partición del espacio: Consiste en la


descomposición de un sólido por medio de
celdas simétricas sobre una malla uniforme;
Estas celdas son conocidas como “voxels” (o
elementos de volumen), y cuentan con cierta
similitud a los pixeles. Su propósito recae
solamente en el control de la presencia o
ausencia de una celda dentro de la malla, lo cual,
en retrospectiva, solo se debe determinar que celda está ocupada y cual no.

¿Cómo funciona la colisión de Hit


boxes?; Dentro de un ambiente
bidimensional, la acción de colisión,
consiste en la unión/choque de dos o más
objetos, que previamente estaban en diferentes espacios cartesianos y que ahora
coinciden en un mismo punto del plano.
Para poder realizar el coste de estos cálculos de la
distancia entre puntos, es necesario abogar por el uso
de la geometría analítica, usando el método para
identificar la distancia entre puntos. Cabe mencionar,
si es que se busca un método más efectivo con
respeto a localización colisión de objetos, la seria de
Mc Laurin, es una opción optima; Esto se debe a que
su cálculo de distancias entre dos puntos mediante el
uso continuo de derivadas y aproximaciones matemáticas es válido y cabe mencionar que
aun sea exacto, este índice tiene una efectividad del 97%, por lo tanto, cuenta con un 3%
en su margen de error.

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TOLUCA

Resultado Pantallas, Código Resultado Explicados

 En este caso, contamos con un programa acerca de un juego de pin pong, un


ejemplo simple, pero destaca el uso de las colisiones, debido a que ambas
raquetas deben interactuar con el cuadro.

 Para poder logras que las figuras (raquetas y la pelota) interactúen e


intersecten entre sí, es necesario un método boolaeno llamando “intersects
(Rectangles r)” o en este caso, “colision (Rectangles r)”, el objeto Rectangles
r, determinará si las figuras rectangulares se juntaran o no (retornará un true
o false).

 Dentro del java class Tablero de juego creado el método colision


(Rectangle2D r), el cual detectará una colisión/intersección entre la pelota y
las raquetas.

 Posteriormente, dentro del java Class Pelota, en el método “public void


mover (Rectangle limites)”, agregamos la colisión de tanto la raqueta1 y la
raqueta2.

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TOLUCA

 Dentro de este método agregaremos do condiciones importantes para


colisión entre la pelota y las raquetas, donde si la pelota intersecta con la
raqueta1, ésta tendrá que volver en sentido contrario (junto con la posición
de cada raqueta para evitar retrasos de intersección), esto aplica también
para raqueta2.

 Finalmente, el todo quedaría modificado de la siguiente manera.

Conclusiones

Viendo a las colisiones con una perspectiva más abierta, cabe decir que son
un recurso bastante importante a la hora de programar ciertos tipos de
proyectos tales como creación de escenas CGI, videos animados 3D, y
creación videojuegos 2D como 3D, siendo en este último una tarea titánica a
la hora de evitar errores de programación de las Hit Box y su interacción con
el usuario.

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TOLUCA

Bibliografía

Escuela de Juegos. (2016, 27 septiembre). Introducción a Glut y OpenGL en C++ [Parte 15]:

Colisiones (Metrica del Rombo). YouTube. https://www.youtube.com/watch?v=d-KkN-pbl2Y

Henry Moreno. (2016, 27 agosto). 05 PONG en Java / Detectando la colisión entre la pelota y

raquetas. YouTube. https://www.youtube.com/watch?v=zMQ2sdFAvCQ&t=44s

Programación de juegos - Detección de colisiones. (s. f.). EDU4JAVA. Recuperado 27 de

noviembre de 2020, de http://edu4java.com/es/game/game6.html

Rodríguez, A. (2017, 14 junio). ¿Cómo detectar colisiones exactas entre 2 objetos en Java? Stack

Overflow en español. https://es.stackoverflow.com/questions/78602/c%C3%B3mo-detectar-

colisiones-exactas-entre-2-objetos-en-java

Serie de Taylor y Mc Laurin - Análisis Numérico - Temas Desarrollados. (s. f.). Análisis Numérico -

Temas Desarrollados. Recuperado 27 de noviembre de 2020, de

https://sites.google.com/site/analisisnumericoipn/home/tema-1/serie-de-taylor-y-mc-laurin

Departamento de Sistemas y Computación


Docente: M.C. C. Rocio Elizabeth Pulido Alba

También podría gustarte