fget_dist()

fget_dist(<x0>, <y0>, <x1>, <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.

Programa ejemplo:
PROGRAM ejemplo_fget_dist;

PRIVATE
    coordenada_x0, coordenada_y0;
    coordenada_x1, coordenada_y1;
    resultado;
    fichero1;

BEGIN

    fichero1=load_fpg("help\help.fpg");
    write(0, 0, 0, 0, "Coordenadas punto 1");
    write(0, 0, 10, 0, "X:");
    write_int(0, 20, 10, 0, offset coordenada_x0);
    write(0, 0, 20, 0, "Y:");
    write_int(0, 20, 20, 0, offset coordenada_y0);
    write(0, 0, 40, 0, "Coordenadas punto 2");
    write(0, 0, 50, 0, "X:");
    write_int(0, 20, 50, 0, offset coordenada_x1);
    write(0, 0, 60, 0, "Y:");
    write_int(0, 20, 60, 0, offset coordenada_y1);
    write(0, 0, 80, 0, "Distancia entre el punto 1 y el punto 2");
    write_int(0, 0, 90, 0, offset 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_dist(coordenada_x0, coordenada_y0, coordenada_x1, coordenada_y1);

        scan_code=0;
        WHILE (scan_code<>_space)
            FRAME;
        END
    END
END


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_dist(). Cada vez que se pulse la barra espaciadora se repetirá el proceso.

La función get_dist() se utiliza para obtener la distancia de un proceso a otro, en lugar de entre dos puntos.

La función fget_angle() 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.

Por ejemplo, con los procesos visualizados dentro de una ventana de modo 7 (ver start_mode7()) no se puede utilizar la función collision() debiéndose obtener la distancia entre los procesos (normalmente con get_dist()) para comprobar si chocan (si su distancia es menor que una determinada).


Ver: get_dist - fget_angle - collision()