stringtranslate.com

Prueba de impacto

En la programación de gráficos por computadora, la prueba de impacto ( detección de impacto , selección o correlación de selección [1] ) es el proceso de determinar si un cursor controlado por el usuario (como un cursor de mouse o un punto táctil en una interfaz de pantalla táctil) intersecta un objeto gráfico dado (como una forma, línea o curva) dibujado en la pantalla. La prueba de impacto se puede realizar en el movimiento o la activación de un mouse u otro dispositivo señalador.

Los entornos GUI utilizan pruebas de aciertos para responder a las acciones del usuario, como seleccionar un elemento del menú o un objetivo en un juego en función de su ubicación visual. En lenguajes de programación web como HTML , SVG y CSS , esto se asocia con el concepto de eventos de puntero (por ejemplo, el movimiento del cursor iniciado por el usuario o la selección de objetos).

La detección de colisiones es un concepto relacionado para detectar intersecciones de dos o más objetos gráficos diferentes, en lugar de la intersección de un cursor con uno o más objetos gráficos.

Algoritmo

Existen muchos algoritmos diferentes que se pueden utilizar para realizar pruebas de aciertos, con diferentes resultados de rendimiento o precisión. Un algoritmo de prueba de aciertos común para cuadros delimitadores alineados con ejes. Una idea clave es que el cuadro que se está probando debe estar completamente arriba, completamente debajo, completamente a la derecha o a la izquierda del cuadro actual. Si esto no es posible, están en colisión. La lógica de ejemplo se presenta en el pseudocódigo a continuación:

función HitTest ( Rectángulo r1 , Rectángulo r2 ) devuelve un valor booleano { devuelve no (( r1 . X + r1 . Ancho < r2 . X ) o ( r1 . X > r2 . X + r2 . Ancho ) o ( r1 . Y + r1 . Alto < r2 . Y ) o ( r1 . Y > r2 . Y + r2 . Alto )); }                              

En Python :

def  hit_test ( r1 :  Rectángulo ,  r2 :  Rectángulo )  - >  bool : " " " Devuelve verdadero si acierta , de lo contrario devuelve falso . " " " return ( no ( r1.x + r1.width < r2.x ) o ( r1.x > r2.x + r2.width ) o ( r1.y + r1.High < r2.y ) o ( r1.y > r2.y + r2.high ) )                            

Véase también

Referencias

  1. ^ Gráficos por computadora: principios y práctica, segunda edición en C, Foley et al, Addison-Wesley , 1997.

Enlaces externos