int fget_dist3d( CDIV_3D_POINT punto0, CDIV_3D_POINT punto1 )


Retorna:

 La distancia de un punto 3D a otro.

Descripción:

Devuelve la distancia desde el punto0  hasta el punto1.


Ejemplo de utilización de fget_dist3d():
PROCESS( proceso_movil )
BEGIN
 ctype = c_3d_object; //Definimos como objeto imagen 3D
 
 object3d = create_bitmap_3d( 1, 103 );
 
 LOOP
  FRAME;
END

MAIN_PROGRAM_CDIV
PRIVATE
 int coordenada_x, coordenada_z, resultado, fichero1;
 CPROCESS * movil;
 CDIV_3D_POINT punto0, punto1;
 
BEGIN_PROGRAM

    set_gfx(GFX_AUTODETECT_WINDOWED);
    
    set_mode(m320x200);
    
    fichero1 = load_fpg("../help.fpg");
    y = -5; //Elevamos la cámara para que se pueda ver
    
    start_3d(0, fichero1, 100, 512, 512, 0, this);
    
    movil = new proceso_movil();
     
    write(0, 0, 0, 0, "Coordenadas proceso camara");
    write(0, 0, 10, 0, "X:");
    write_int(0, 20, 10, 0, &x);
    write(0, 0, 20, 0, "Z:");
    write_int(0, 20, 20, 0, &z);
    write(0, 0, 40, 0, "Coordenadas proceso movil");
    write(0, 0, 50, 0, "X:");
    write_int(0, 20, 50, 0, &movil->x);
    write(0, 0, 60, 0, "Z:");
    write_int(0, 20, 60, 0, &movil->z);
    write(0,  0, 80, 0, "Distancia de camara al proceso:");
    write_int(0,  0, 90, 0, &resultado);
    write(0, 0, 200, 6, "Pulsa [ESPACIO] para hallar otros dos puntos.");

    LOOP{
        movil->x = rand(-256, 256);
        movil->z = rand(-256, 256);
        
        punto0.x = this->x; punto0.y = this->y; punto0.z = this->z;
        punto1.x = movil->x; punto1.y = movil->y; punto1.z = movil->z;
        
        resultado = fget_dist3d(punto0, punto1);
        
        scan_code = 0;
        while (scan_code!=_space)
            FRAME;
    }
END_PROGRAM


En el ejemplo, después de poner los mensajes necesarios, se hallan las coordenadas x y z de dos puntos hallados al azar y se guardan en las variables destinadas para ello, calculando con la función fget_dist3d() la distancia entre los dos puntos. Cada vez que se pulse la barra espaciadora se repetirá el proceso.

La función get_angle3d() se utiliza para obtener el ángulo 3D hasta otro proceso, en lugar de la distancia.

Esta función se puede utilizar para detectar choques entre procesos por proximidad entre ellos.


Ver: fget_dist2d() - get_angle3d() - get_distx3d() - get_distz3d()