int fget_dist2d( int x0, int y0, int x1, int y1 )
Retorna:
La distancia entre dos puntos.
Descripción:
Devuelve la distancia que hay desde el punto 0 (x0, y0) hasta el punto 1 (x1, y1).
Como coordenadas de ambos puntos (x0, y0, x1, y1) se puede especificar cualquier expresión numérica válida.
MAIN_PROGRAM_CDIV PRIVATE int coordenada_x0, coordenada_y0, coordenada_x1, coordenada_y1, resultado, fichero1; BEGIN_PROGRAM set_gfx(GFX_AUTODETECT_WINDOWED); set_mode(m320x200); fichero1=load_fpg("../help.fpg"); write(0, 0, 0, 0, "Coordenadas punto 1"); write(0, 0, 10, 0, "X:"); write_int(0, 20, 10, 0, &coordenada_x0); write(0, 0, 20, 0, "Y:"); write_int(0, 20, 20, 0, &coordenada_y0); write(0, 0, 40, 0, "Coordenadas punto 2"); write(0, 0, 50, 0, "X:"); write_int(0, 20, 50, 0, &coordenada_x1); write(0, 0, 60, 0, "Y:"); write_int(0, 20, 60, 0, &coordenada_y1); write(0, 0, 80, 0, "Distancia entre el punto 1 y el punto 2"); write_int(0, 0, 90, 0, &resultado); write(0, 0, 200, 6, "Pulsa [ESPACIO] para hallar otra distancia."); LOOP{ clear_screen(); coordenada_x0=rand(0, 319); coordenada_y0=rand(0, 199); coordenada_x1=rand(0, 319); coordenada_y1=rand(0, 199); put(fichero1,200,coordenada_x0, coordenada_y0); put(fichero1,200,coordenada_x1, coordenada_y1); //Hallamos la distancia que hay entre los dos puntos resultado = fget_dist2d(coordenada_x0, coordenada_y0, coordenada_x1, coordenada_y1); scan_code=0; while (scan_code!=_space) FRAME; } END_PROGRAM
En el ejemplo, después de poner los mensajes necesarios se guardan las coordenadas de dos puntos hallados aleatoriamente en las variables definidas para tal efecto, obteniendo la distancia entre ellos con la función fget_dist2d(). Cada vez que se pulse la barra espaciadora se repetirá el proceso.
La función get_dist2d() se utiliza para obtener la distancia de un proceso a otro, en lugar de entre dos puntos.
La función fget_angle2d() se utiliza para obtener el ángulo entre dos puntos, en lugar de la distancia.
Esta función se puede utilizar para detectar choques entre procesos por proximidad entre ellos, si bien suele utilizarse para ello la función collision() que detecta cuando dos procesos tienen sus gráficos superpuestos.
Ver: get_dist2d() - fget_angle2d() - collision()