Red de conocimiento informático - Problemas con los teléfonos móviles - La aplicación de VRML y JAVA en cursos en línea

La aplicación de VRML y JAVA en cursos en línea

VRML y JAVA utilizan el lenguaje de modelado de realidad virtual (VRML) y el lenguaje Java para interactuar en cursos en línea. Ambos son tecnología de código ejecutable y lo que se transmite a través de la red es solo un pequeño archivo de descripción (datos de instrucción). conjuntos), el cliente accede e interpreta interactivamente estos archivos a través del navegador VRML local y la máquina virtual JAVA. La combinación de Java con VRML puede implementar la tecnología de cursos multimedia de red: use VRML para la construcción de escenas, la programación integrada escrita en Java se da cuenta del comportamiento de programación. objetos, que permite a VRML crear un mundo virtual tridimensional realista en línea, brindando a los usuarios una experiencia natural e inmersiva, que incluye interactividad y dinámica, efecto, continuidad y sentido de participación, y esta será una de las principales formas de enseñanza en línea. en el futuro

1. Interacción simple VRML

Interacción simple VRML, es decir, cada nodo en el espacio VRML tiene una interfaz de transmisión de datos unificada y un conjunto completo de atributos y. Puede recibir valores enviados por nodos sensores, extraer datos, cambiar sus propios valores de atributos y activar eventos según la configuración del dominio de atributos de la interfaz correspondiente. Puede cambiar su posición, apariencia y efecto de visualización en el espacio. También puede enviar los datos procesados ​​al dominio de salida y pasarlos a otros nodos del modelo. Cada nodo implementa la transmisión de datos a través del enrutamiento mutuo (enrutamiento a) del dominio de interfaz. La relación de mapeo es gratuita, pero las especificaciones de datos del dominio de interfaz deben. ser estrictamente consistente

2. Interacción extendida VRML

El propio mecanismo de interacción de VRML no puede crear un software educativo multimedia a gran escala, porque el propio VRML no puede completar funciones básicas como transiciones, ramas, etc. y bucles en la programación ordinaria, por lo tanto, en el diseño de sistemas reales, las poderosas capacidades de programación de red proporcionadas por el lenguaje Java se pueden utilizar para escribir aplicaciones con funciones como comunicación con sistemas remotos y procesamiento de capacidades compartidas. Todo el soporte de Java para VRML se implementa a través de. clases de encapsulación adicionales A través de estas clases, los programas Java pueden acceder a escenas VRML, recibir y enviar eventos, obtener objetos VRML de la página, etc., para lograr un control completo de las escenas VRML [2]. dividido en: interfaz de programación de scripts interacción SAI (Script Authoring Interface) e interfaz de programación externa EAI (EAI External Authoring Interface)

2.1 Interfaz de programación de scripts SAI

Usos de la interacción SAI. mecanismo de eventos y enrutamiento para realizar la interacción entre VRML y Java (o JavaScript). Primero, el evento se pasa al script en el nodo Script a través de eventIn; en segundo lugar, se llama en el script en el nodo Script. (o JavaScript) finalmente se procesa, los resultados se envían de regreso a la escena VRML a través de eventOut para animación o interacción.

El nodo Script de VRML es un nodo que controla sensores e interpoladores, a través de los cuales se puede definir y cambiar la apariencia y el comportamiento de los objetos en la escena. El campo URL del nodo Script puede contener un programa JavaScript o una JavaClass vinculada. El nodo SCRIPT se puede colocar en cualquier lugar de la escena y nombrarlo con DEF para completar la eliminación y entrega de eventos. Los campos del nodo SCRIPT son extendidos por el usuario, y los campos que llegan a estos campos se mueven automáticamente a los programas relacionados con el nodo SCRIPT. Además, los nodos SCRIPT también pueden generar (cambiar) dinámicamente formas tridimensionales y vincular sensores e interpoladores apropiados escribiendo scripts de programas apropiados.

2.1.1Java establece contacto con el nodo Script a través de la clase Script (paquete vrml.node) y controla el nodo VRML

Primero, defina los valores de los campos en el El nodo Script y la ruta establecida conectan otros nodos en VRML con nodos Script.

Cuando ocurre un evento en el nodo asociado con el nodo Script, el evento se pasa al campo eventIn del nodo Script a través del enrutamiento, y el nodo Script encuentra la clase Java a través de la dirección especificada en el campo URL.

Luego, la clase Java comienza a funcionar y el método inicialize() se ejecuta primero: en el método inicialize(), se debe obtener el valor del campo eventIn o campo en el nodo Script, o el valor en Java debe devolverse al campo eventOut en el script. Los métodos proporcionados por la clase Script son: getField (fieldName); getEventIn (eventInName); getEventOut (eventOutName). Los parámetros fieldName, eventInName y eventOutName deben coincidir con los nombres definidos en el nodo Script y las subclases correspondientes del Script. La clase de campo (paquete vrml .filed) es coherente con los distintos tipos de tipo definidos en el nodo Script. Proporciona los métodos getValue() y setValue().

Además, capture los eventos pasados ​​por el nodo Script a través del método ProcessEvent (Event p0) o ProcessEvents (int p0, Event[] p1) proporcionado por la clase Script. Los métodos ProcessEvent y ProcessEvents son los puntos de entrada públicos para todos los eventos externos. Los programas Java manejan los eventos en consecuencia reemplazando estos dos métodos. El método getName() de la clase Event en el paquete Vrml devuelve el nombre del evento (el nombre es el mismo que eventInName en el nodo Script) para determinar el evento que ocurrió y manejarlo en consecuencia; La clase devuelve una instancia de la clase ConstField (es el campo eventIn en el nodo Script donde ocurre el evento. La clase ConstField es una subclase de la clase Field. No tiene un método setValue(), por lo que solo puede). saca el valor del campo eventIn en el nodo Script, pero no puede modificarlo.

Finalmente, después de procesar todos los eventos, el programa llama al método eventsProcessed() en la clase Script, donde se pueden agregar varios efectos como animación e interacción que el usuario desea lograr. El método Shutdown() en la clase Script implementa la forma de abandonar el archivo VRML.

A través del nodo Script, los datos procesados ​​por el programa java se pueden devolver al archivo VRML. El valor se pasa al campo eventOut del nodo Script a través del método setValue() de la variable obtenida por getEventOut() durante la inicialización, y luego se pasa a varios nodos en VRML a través del enrutamiento para completar todo el proceso de comunicación.

2.1.2 Java modifica directamente los nodos VRML a través de nodos Script y clases de Nodo (paquete vrml.node)

A través de nodos Script y enrutamiento, se debe configurar en el campo eventOut del Nodo de script. Puntos de control, los programas Java pueden cambiar los valores de los nodos en el archivo VRML. Cuando hay una gran cantidad de datos para transmitir, este método de configurar un campo eventOut y una ruta para cada dato es obviamente bastante problemático. Por lo tanto, Java propone un método para modificar nodos directamente.

Java modifica directamente los nodos en la escena y todavía usa nodos Script. Primero, al definir el nodo Script, cambie el campo eventOut al campo campo y defina el tipo de campo como SFNode. El formato específico es el siguiente:

"campo SFNode nombre de campo USE nombre de nodo". "nodeName" es el nombre del nodo que se va a modificar (nombrado por la declaración DEF en VRML), que genera un puntero al nodo llamado nodeName.

Al realizar la inicialización, se obtiene una instancia de la clase SFNode correspondiente a través del método getField(), y el valor de la clase se obtiene a través del método getValue(). Aquí su valor resulta ser una instancia de la clase Node llamada nodeName. y luego a través de los métodos proporcionados por la clase Nodo Modifique el nodo directamente. Los métodos getExposedField (String p0) y getEventIn (String p0) obtienen los dominios de campo y eventIn del nodo respectivamente, y usan los resultados como clases de Campo, luego leen y establecen los valores a través de los métodos proporcionados por las subclases de cada Campo; clase y configurar directamente los resultados Regrese al nodo sin configurar la ruta, logrando así el propósito de modificar directamente el nodo.

La clase Node también proporciona el método getEventOut (String p0), que se puede utilizar para obtener el campo eventOut del nodo. A diferencia de los dos primeros métodos, el resultado que obtiene es una clase Field que no puede ser. modificado, es decir, la clase Field Subclase de la clase ConstField. Con el método mejorado, se puede reducir efectivamente la longitud del código, se puede ahorrar el tiempo de cálculo de los archivos VRML y se puede mejorar la velocidad de generación de escenas VRML.

2.1.3 Java crea escenas VRML directamente a través de nodos Script y clases de navegador (paquetes vrml)

Establezca los valores de addChindren y removeChindren del nodo Grupo para agregar y eliminar específicos nodos, pero el enrutamiento aún no se puede operar. Cuando hay que crear una gran cantidad de nodos diferentes e interrelacionados en VRML a través de Java, la carga de trabajo es inimaginable. Para cumplir con este requisito, la clase Script hereda la clase BaseNode (paquete vrml) y se definen dos métodos en la clase BaseNode: getBrowser() y getType(). El método getBrowser() devolverá el navegador donde se encuentra la clase BaseNode. La clase Navegador existe en el paquete vrml y proporciona una serie de métodos para controlar todo el archivo VRML. Tales como:

(1), agregar y eliminar rutas: addRoute (SFNode fromNode, SFString fromEventOut, SFNode toNode, SFString toEventIn), eliminarRoute (SFNode fromNode, SFString fromEventOut, SFNode toNode, SFString toEventIn)

(2) Cree VRML directamente: createVrmlFromString (SFString vrmlSyntax) (escriba la sintaxis del nodo a crear como una cadena como parámetro)

(3) Cree la respuesta correspondiente en VRML Nodo: createVrmlFromURL (url MFString, nodo SFNode, evento SFString) (El parámetro de este método que proporciona la sintaxis del nodo se coloca en el archivo VRML al que apunta la dirección URL. El navegador encuentra el nodo que se agregará a través de la URL y lo agrega al parámetro de nodo En el dominio eventIn especificado por el parámetro de evento en el nodo especificado)

(4) Reemplace todo el archivo VRML con el nodo especificado: replaceWorld (nodos MFNode)

.

Utilice otro archivo VRML especificado por url para reemplazar el archivo actual: loadURL (url MFString, parámetro MFString).

Cuando la clase Script ejecuta el método inicialize(), obtiene la instancia del navegador y luego utiliza el método anterior para crear y modificar la escena VRML cuando se ejecuta el método ProcessEvent(Event e). A través de mejoras, no solo se reduce la longitud del código del archivo VRML, sino que también se reduce considerablemente el código del programa Java, lo que mejora aún más la velocidad de generación de escenas VRML.

2.2 Interacción de la interfaz de programación externa (EAI)

El VRML interactivo SAI es inseparable de los nodos Script y las clases Script (paquete vrml.node). Las clases Java escritas para implementar funciones de comunicación deben heredar de la clase Script. Sin embargo, Java no admite la herencia múltiple. Si se utiliza Applet para controlar escenas VRML, es bastante complicado para el programa Java heredar los métodos de la clase Script. Especialmente cuando se integran archivos VRML y Applets en la misma página HTML, es bastante difícil implementarlo usando la clase Script, y el código del programa es largo y tiene poca escalabilidad.

El EAI proporcionado por el estándar VRML97 define una serie de métodos para que el entorno externo acceda a los nodos dentro de VRML a través del modelo basado en eventos existente de VRML, logrando la comunicación entre los applets y las escenas VRML. EAI contiene todas las funciones de la interfaz de script del navegador, como consultar el estado del navegador, agregar o eliminar rutas, generar nuevos nodos, etc.

Java utiliza principalmente dos clases: Navegador y Nodo (paquete vrml.external), así como otras clases de atributos (EventIn*, EventOut*) para manejar los campos eventIn y eventOut, y varios métodos de manejo de excepciones. *La clase de excepción completa la descripción de EAI.

La clase Browser proporciona tres métodos: métodos getBrowser (Applet pApplet), getBrowser (Applet pApplet, String frameName, int index) y getNode (String name). Los dos primeros métodos son métodos estáticos. Utilice estos dos métodos directamente en la clase Applet para obtener instancias de la clase Applet y la clase de navegador donde se encuentra VRML. El método getNode () puede obtener directamente la instancia del nodo específico (clase de nodo) del archivo VRML. Cada nodo incrustado en el archivo VRML usando la declaración InLine no se puede obtener usando el método getNode (). La clase Node aquí es completamente diferente de la clase Node en el método 1. Utiliza sus propios métodos getEventIn() y getEventOut() para obtener cada campo del nodo VRML. Luego use los métodos getValue() y setValue() de la instancia Event* devuelta para controlar el valor específico. La clase EventIn* solo proporciona el método setValue() para establecer valores; la clase EventOut* es relativamente compleja. No solo proporciona el método getValue() para obtener el valor actual, sino que también proporciona la interfaz EventOutObserver para monitorear el campo EventOut. supervise si hay nuevos valores en el nodo VRML en cualquier momento. Se produce el evento EventOut. Una vez que ocurre un nuevo evento, responda al evento reemplazando el método de devolución de llamada (valor de EventOut, marca de tiempo doble, datos del objeto). .

A través de las clases Navegador y Nodo, puede abandonar los nodos Script y las clases Script e incluso enrutar y controlar directamente varios nodos del archivo VRML, es decir, cada instancia de la clase Nodo. Sin embargo, el parámetro del método getBrowser() debe ser una instancia de Applet, por lo que este método solo puede controlar VRML a través de Applet.

3. Resumen

VRML y otros medios técnicos para realice escenas tridimensionales (como OpenGL, Cult3D, 3DSMAX, Viewpoint), tiene las ventajas de una sintaxis simple, una potente función de modelado tridimensional y una fácil publicación en línea. Sin embargo, dado que VRML en sí es sólo un estándar, no puede satisfacer todas las necesidades de todos los ámbitos de la vida. Por lo tanto, la realización de funciones interactivas avanzadas debe depender de potentes lenguajes de alto nivel como Java. De esta manera, puede compensar efectivamente algunas deficiencias del propio VRML (como juicio lógico, operaciones de archivos, entrada de teclado, control preciso de escenas, etc.), mejorando así la interacción con otros medios como HTML y también logrando Cursos de red de sistema de entorno virtual complejo.

/model/519980.html