int get_dist3d( CPROCESS * identificador )
Retorna:
La distancia hasta otro proceso.
Descripción:
Devuelve la distancia desde el proceso actual (el que llamó a esta función) hasta el proceso cuyo código identificador se le pasa como parámetro.
Ver formas de obtener el código identificador, para más información.
Ejemplo de utilización de get_dist3d():
PROCESS( proceso_movil ) BEGIN ctype = c_3d_object; //Definimos como objeto 3D object3d = create_bitmap_3d( 1, 103 ); LOOP FRAME; END MAIN_PROGRAM_CDIV PRIVATE int coordenada_x, coordenada_z, resultado, fichero1; CPROCESS * movil; 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); resultado = get_dist3d(movil); 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 get_dist3d() la distancia entre los dos procesos. Cada vez que se pulse la barra espaciadora se repetirá el proceso.
La función fget_dist2d() se utiliza para obtener la distancia entre dos puntos, en lugar de entre dos procesos. Si el código identificador del proceso se tiene, por ejemplo, en una variable denominada id2, entonces la llamada a la función:
get_dist3d(id2)
Sería equivalente a:
fget_dist3d( punto3d0, punto3d1)
Obtener la distancia desde las coordenadas (x, y, z) del proceso actual hasta las coordenadas (x, y, z) del proceso cuyo código identificador es id2.
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()