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()