int fget_dist3d( CPROCESS * id1, CPROCESS * id2 )
Retorna:
La distancia de un proceso hasta otro proceso.
Descripción:
Devuelve la distancia desde un proceso indicado por el identificador 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.
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; 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); resultado = fget_dist3d(this, 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 fget_dist3d() la distancia entre dos procesos. Cada vez que se pulse la barra espaciadora se repetirá el proceso.
fget_dist3d(this, 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 hasta otro proceso, en lugar de la distancia.
Ver: fget_dist2d() - get_angle3d() - get_distx3d() - get_disty3d() - get_distz3d()