Programación de aplicaciones RV

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación de aplicaciones RV"

Transcripción

1 Programación de aplicaciones RV TÉCNICAS Y DISPOSITIVOS DE REALIDAD VIRTUAL MASTER EN INFORMÁTICA GRÁFICA, JUEGOS Y REALIDAD VIRTUAL Marcos García

2 Bibliografía Virtual Reality Technology Ed. Wiley-Interscience (Second Edition). Grigore C. Burdea & Philippe Coiffet. The Inventor Mentor : Programming Object-Oriented 3D Graphics with Open Inventor, Release 2 Ed. Wesley. Josie Wernecke. The Inventor Toolmaker : Extending Open Inventor, Release 2 Ed. Wesley. Josie Wernecke. Open Inventor C++ Reference Manual Ed. Wesley. Josie Wernecke. or/pro/html/inventor_base.htm

3 Índice Introducción OpenInventor EonStudio

4 Estructura de un sistema RV

5 Estructura software de un sistema RV Usuario Dispositivos Entrada Dispositivos Salida Software Entrada Software Salida Sw Motor Software Estado Mundo Virtual Base de Datos

6 Estructura software de un sistema RV Modelo de mundo virtual Geometría Dotar de comportamiento a los objetos del modelo Introducir el modelo de forma organizada en nuestra aplicación Crear módulos que gestionen los dispositivos I/O Render Gráfico OpenGl DirectX Glide Render Háptico Drivers de los dispositivos Toolkits

7 VR Toolkits Librerías diseñadas para ayudar al programador Características básicas Filosofía de orientación a objetos Extensibles Independientes de Hw Estructuran la información de forma jerárquica (scenegraph)

8 VR Toolkits Características adicionales Soportan algunos dispositivos I/O Permiten generar código portable Permiten importar (y exportar) modelos en formatos usados por herramientas CAD (.3ds,.max,.dwg,.dxf). Detección de colisiones Modelos de texturas, iluminación y sombreado Soporte de modelos multirresolución (LOD) Funciones de red para interacciones multiusuario

9 Clasificación Programación gráfica o de texto Lenguaje de programación que usan Dispositivos soportados (I/O) Rendering soportado Propósito especifico o propósito general Propietarias o públicas

10 Clasificación Nombre Área de aplicación Librerías propietarias Lenguaje de la librería Open Inventor (SGI,COIN3D,TGS) EON Studio (Eon Reality) World ToolKit (WTK) (EAI/Sense8) Propósito general Si/No C/C++ Propósito general Si Programación gráfica SDK C++ (Extender e integrar) Propósito general Si C Java3D (Sun Microsystems) Propósito general No Implementado en C Programación en Java Cpp3D GHOST (SensAble Technologies) Renderizado Háptico Si C++ PeopleShop (Boston Dynamics) Militar/Civil Si C/C++

11 Actualmente Toolkits de Render y Motores Completos RenderWare (Xbox, GameCube, PsII, PC) Gamebryo Unreal Engine 3.0 Toolkits de sonido DirectSound OpenAl Toolkits de Simulación Física Havok Physics Engine PhysX Irrlicht (SourceForge) Toolkits de Inteligencia Artificial Kynapse 4.0 (PS3)

12 Scene Graphs Las toolkits organizan la información en grafos llamados scene graphs Organizan el mundo de forma jerárquica Estructura de árbol Nodo raíz Internos Hoja La forma de leer el árbol es propia de cada toolkit No son estructuras fijas

13 Scene Graphs Ejemplos: Nodo root A Nodo Interno B D C E J Nodo Hoja F G H I

14 Scene Graphs Ejemplos: Escena Palma Bola

15 Open Inventor

16 Índice Introducción Arquitectura de OI Base de Datos (primitivas) Componentes de alto nivel Grafo de escena Jerarquía de objetos Implementaciones de Open Inventor

17 Introducción Toolkit 3D C/C++ Orientada a objetos Extensible Aprovecha toda la potencia Hw. Código portable Tiene su propio formato de intercambio de datos *.iv = *.wrl Permite el intercambio de datos entre aplicaciones

18 Introducción Características adicionales (Coin) Soporte sonido 3D Detección de colisiones Soporte threads Orientada a objetos Soporte: 3DS Visualización de volúmenes (Sim Voleon) Otros módulos

19 Introducción Clases básicas Primitivas Nodos de propiedad, forma, grupo Manipuladores Node Kits Engines (Motores) Sensores Acciones Componentes de alto nivel

20 Arquitectura de Inventor Open Inventor Component Library Node kit Manipulator Database Scene Open Inventor 3D Toolkit Open Inventor 3D Interchange File format OpenGL SSOO

21 Arquitectura de Inventor Open Inventor 3D Interchange File format

22 Base de datos Contiene Nodos Agrupados en Scenegraphs Motores Sensores Permite Acciones Renderizado Búsquedas Cálculo de Bounding Box (caja contenedora) Escritura y lectura de un archivo

23 Librería de componentes Librería de componentes Dependiente del gestor de ventanas Contiene Áreas de Renderizado Visualizadores Editores Realiza la inicialización (Base de datos y sistema de ventanas) Trata eventos Los captura Los trata directamente Los transforma para OI

24 Scene Graph La unidad básica de OI son los nodos Los nodos se estructuran en grafos Tienen una estructura muy parecida a los árboles Nodo raíz (nodo de agrupación) Nodos intermedios (nodo de agrupación) Nodos hojas (propiedades, formas, manipuladores..) Un nodo hijo pude tener dos padres El grafo debe ser acíclico

25 Nodos del grafo de la escena

26 Ejemplo de DB Escena 1 Escena 2

27 Lectura del grafo Aplicar acción Arriba a bajo De izquierda a derecha Traversal state (estado trasversal) Acumulación de transformaciones Material Luces

28 Ejemplo de DB Escena 1 Escena 2

29 Objetos OI Convención de nombres Objetos Comienzan por S mayúscula y el comienzo de cada palabra irá también en mayúscula Objetos básicos Sb (scene basic)» SbVec3f Resto de objetos So (scene objet)» SoGroup Objeto de la librería de componentes So[Gestor de ventanas]» SoWinRenderArea, SoQtRenderArea, SoXtRenderArea Métodos y atributos Primera letra con minúscula, y el comienzo de cada palabra en mayúscula addchild() Tipos enumerados Todo en Mayúscula FILLED, FIRST

30 Jerarquía de objetos Objetos Básicos (Sb) Contenedores (CamposFields) Mono-valuados (Single-field SoSF) Multi-valuados (Multi-field SoMF) Objetos heredados de la clase base SoBase Contenedores de Campos SoFieldContainer Motores SoEngine Nodos SoNode Forma Propiedad Grupo Kits Iluminación Cámaras Sensores SoSensor Tiempo SoTimerQueueSensor Otros SoDelayQueueSensor Acciones SoAction Errores SoError Eventos SoEvent Base de Datos SoBD Estado SoState (SoElement) Librería de componentes SoXt, SoWin SoWinObject Componentes (Ventanas) Dispositivos Rutas SoPath

31 Base de datos Contiene los grafos de escena (nodos), los motores y los sensores. Tiene un modelo de eventos independiente del gestor de ventanas Es un objeto único SoDB Ha de ser inicializado Directamente SoBD::init() Inicializando la librería de componentes: SoWin::init() Permite utilizar el formato de intercambio de datos SoSeparator *readall(soinput *fichero)

32 Ejemplo SoSeparator *readfile(const char *filename) { SoInput * datafich = new SoInput(); SoSeparator *sep; if (!datafich->openfile (filename)) { fprintf (stderr,"error: Abriendo generando la base de datos\n" " ->No se encuentra el fichero %s\n",filename); exit (-1); } //Comprobamos que es un fichero válido if (!datafich->isvalidfile ()) { fprintf (stderr,"error: Abriendo generando la base de datos\n" " ->Fichero %s no valido\n",filename); exit (-1); } sep=sodb::readall (datafich); delete datafich; } return sep;

33 Objetos básicos Objetos Básicos (Sb) Tipos básicos, no tienen ningún objeto padre en la jerarquía. Usados por otros objetos OI Ejemplos SbLine, SbName, SbVect3f, SbRotation, SbMatrix, SbViewportRegion

34 Campos (Fields) Contenedores (Fields) Contienen tipos básicos Básicamente se usan para detectar cambios en los campos de la base de datos. Campos mono-valuados (Single-field SoSF) SoSFFloat (float), SoSFRotation (SbRotation) Campos multi-valuados (Multi-field SoMF) SoMFFloat (float), SoMFRotation (SbRotation) Asignación de valores y consulta de valores Mono-valuados Asignación normal: SoSFFloatVar = 3.0f; Uso de los métodos setvalue y getvalue Multi-valuados Como si se tratase de un vector: SoSFFloatVar [1]= 3.0f; Uso de los metodos: getvalue, set1value, setvalues, insertvalues, deletevalues Indica el número de valores que posee: getnum Se pueden conectar

35 SoType Clase de chequeo de tipos SoBase, acciones, eventos, errores SoType permite Obtener el nombre del tipo getname() Crear instancias createinstance() Conocer el clase padre getparent() Conocer el tipo de un nodo por su nombre fromname() Utilidad: saber si un objeto pertenece a una determinada clase o jerarquía Objeto->getTypeId.isDerivedFrom(SoXXXX::getClassTypeID) Objeto->isTypeOf(SoXXXX::getClassTypeID) Objeto->getTypeId==SoXXXX::getClassTypeID Permite realizar búsquedas de un determinado tipo (SoSearchAction) Equivalentes

36 Ejemplo SoSearchAction mysearchaction; // Look for first existing light derived from class SoLight mysearchaction.settype(solight::getclasstypeid()); mysearchaction.setinterest(sosearchaction::first); mysearchaction.apply(root); if (mysearchaction.getpath() == NULL) {// No lights found // Add a default directional light to the scene SoDirectionalLight *mylight = new SoDirectionalLight; root->insertchild(mylight, 0); }

37 Objetos heredados de la clase base SoBase Contenedores de Campos Nodos Forma Propiedad Transformaciones» Manipuladores Apariencia Métricos Grupo Kits Iluminación Cámaras Motores Rutas

38 Creación de nodos Los nodos deben crearse como punteros Deben ser referenciados en la base de datos Directamente ref() Añadiéndolo a un padre addchild(), insertchild() Añadiéndolo a un path o ruta SoPath Añadiéndolo a una lista de nodos SoNodeList Añadiéndolo a un campo o field SoSFNodo SoMFNode Conectándolo de un engine

39 Borrado de nodos No usar delete DECREMENTAR a 0 su contador de referencias (cada operación decrementa en 1 este contador) De forma directa unref() Borrándolo de un nodo padre deletenode() Sacándolo de un path o ruta SoPath Borrándolo de una lista de nodos SoNodeList Cambiando el puntero de campo o field a NULL o con otro valor SoSFNodo SoMFNode Desconectándolo de un engine

40 Quitar referencias sin borrar Se utiliza unrefnodelete() Ejemplo Incorrecto Creas un nodo: new SoCone() Le aplicas una acción (ref/unref) : SoBoundingBoxAction Lo añades a un grupo: addchild() Correcto Creas un nodo new SoCone() Lo referencias: ref Le aplicas una acción: SoBoundingBoxAction Usas unrefnodelete() Lo añades a un grupo: addchild()

41 Nombrado de nodos y motores Descendientes de la clase SoBase Obtener nombre getname() Poner nombre setname() Buscar nodo por nombre SoNode::getByName ()

42 Ejemplo SoSeparator *root = new SoSeparator; root->ref(); //Importante referenciar el nodo raíz root->setname("root"); SoCube *mycube = new SoCube; root->addchild(mycube); mycube->setname("mycube"); SoSphere *mysphere = new SoSphere; root->addchild(mysphere); mysphere->setname("mysphere"); RemoveCube(); void RemoveCube() { //Busca en toda la base de datos, no sólo en una escena SoSeparator *myroot; myroot = (SoSeparator *)SoNode::getByName("Root"); SoCube *mycube; mycube = (SoCube *)SoNode::getByName("MyCube"); myroot->removechild(mycube); }

43 Tipos de nodos Forma Propiedad Transformaciones Manipuladores Apariencia Métricos Grupo Iluminación Cámaras

44 Nodos de forma Formas básicas SoSphere, SoCylinder, SoCone Curvas y superficies (Nurbs) Indexadas SoIndexedNurbsCurve, SoIndexedNurbsSurface No Indexadas SoNurbsCurve, SoNurbsSurface Textos 3D y 2D SoText2, SoText3 Formas compuestas por vértices Indexadas SoIndexedFaceSet, SoIndexedLineSet, SoIndexedTriangleStripSet, No Indexadas SoFaceSet, SoPointSet, SoLineSet, SoQuadMesh, SoPointSet, SoMarkerSet

45 Nodos de propiedad Nodos de transformación (SoTransformation) SoTranslation, SoRotation, SoScale SoTransform SoTransformManip (Manipuladores) Nodos métricos SoNormal, SoCoordinate3

46 Nodos de apariencia Color SoMaterial SoBaseColor Textura Tipo de letra SoFont

47 Nodos de grupo Son contenedores que agrupan nodos de la escena Su clase base es SoGroup. Métodos básicos addchild insertchild removechild (Índice o nodo) Subclases: SoSeparator SoSwitch (whichchild)

48 Nodos de iluminación y nodos cámara Iluminación: iluminan la escena SoGLLightIdElement::getMaxGLSources(); //nº máx luces SoLight Ambiental Puntual (Point) Direccional (Directional) Focal (Spot) Cámara: Muestran parte de la escena SoCamera Proyección en perspectiva Proyección ortográfica

49 Modelo de Eventos Derivan de la clase SoEvent Son enviados por la librería de alto nivel Eventos de teclado, ratón Se recorre el árbol de escena buscando qué nodos pueden tratar el evento sethandled Nodos que tratan eventos Manipuladores SoSelection SoEventCallback

50 Manipuladores Draggers y manipulators. Son nodos que capturan eventos y tienen determinadas respuestas ante ellos. Funcionamiento Capturan el evento Cambian de forma Los manipuladores además son nodos de propiedad Cambian el traversal state Luces Transformaciones Se pueden sustituir por transformaciones o luces replacenode (SoPath *p) replacemanip (SoPath *p, SoTransform *t)

51 Callbacks Son funciones a las que se llama cuando un objeto detecta un evento Nodos Sensores Motores Es una forma de dotar de comportamiento a la escena Ejemplo: SoSelection *grupo= new SoSelection(); grupo->addselectioncallback(seleccioncallback, data); void seleccioncallback(void *userdata, SoPath * path);

52 Ejemplo // An event callback node so we can receive key press events SoEventCallback *myeventcb = new SoEventCallback; myeventcb ->addeventcallback(sokeyboardevent::getclasstypeid(), mykeypresscb, selectionroot); selectionroot ->addchild(myeventcb); // userdata is the selectionroot from main(). Void mykeypresscb(void *userdata, SoEventCallback *eventcb) { SoSelection *selection = (SoSelection *) userdata; const SoEvent *event = eventcb->getevent(); If (SO_KEY_PRESS_EVENT(event, UP_ARROW)) { myscaleselection(selection, 1.1); eventcb->sethandled(); } else if (SO_KEY_PRESS_EVENT(event, DOWN_ARROW)) { myscaleselection(selection, 1.0/1.1); eventcb->sethandled();} }

53 Ejemplo SoEventCallback * ecb = new SoEventCallback; ecb->addeventcallback(soevent::getclasstypeid(), mouse_cb, NULL); root->addchild(ecb); void mouse_cb(void * closure, SoEventCallback * eventcb) { const SoEvent * event = eventcb->getevent(); if (event->isoftype(solocation2event::getclasstypeid())) { const SbVec2s position = event->getposition(); printf("mouse moved: <%i %i>\n", position[0], position[1]); } }

54 Ejemplo SoEventCallback * mouseevent = new SoEventCallback; mouseevent-> addeventcallback(somousebuttonevent::getclasstypeid(), mousecallback,null); root->addchild (mouseevent); SoEventCallback * keyevent = new SoEventCallback; keyevent -> addeventcallback(sokeyboardevent::getclasstypeid(), keycallback,null); root->addchild (keyevent); void mousecallback (void *, SoEventCallback *mouseevent) { const SoEvent *event = mouseevent->getevent (); if (SO_MOUSE_PRESS_EVENT(event, BUTTON1)) { } } //OTRAS MACROS. //SO_KEY_PRESS_EVENT (event, PAD_ADD), //SO_KEY_RELEASE_EVENT (event, Q)

55 CDS

56 Motores o engines Son objetos que conectan campos (fields) Principalmente se usan para animar la escena Entradas: campos (SoField) Salidas: objeto especial (SoEngineOutput) Tipos Aritméticos SoCalculator (lento) Animación Eventos temporales SoTimeCounter Eventos no temporales SoCounter Entrada 1 Entrada 2 Usado para manipular arrays SoSelectOne Se pueden concatenar motores a otros motores Entrada n Los campos pueden ir directamente conectados sin motores connectfrom (otro campo o un salida de un motor) Salida 1

57 Motores o engines

58 Ejemplo SoCalculator *calc=new SoCalculator; SoTranslation *t1=new SoTranslation; SoTranslation *t2=new SoTranslation; //Conectamos dos traslaciones. A una de ellas le //anulamos la coordenada y calc->a.connectfrom(&t1-> translation); t2->translation.connectfrom(&calc->oa); calc->expression.set1value(0,sbstring("oa[0]=a[0]")); calc->expression.set1value(1,sbstring("oa[1]=0")); calc->expression.set1value(2,sbstring("oa[2]=a[2]"));

59 Rutas Objeto SoPath Indican caminos dentro del grafo de escena Es una cadena de nodos donde cada eslabón es hijo del anterior Utilidad Almacenan subgrafos de la escena Todas las acciones que se aplican a un nodo pueden aplicarse a un Path

60 Acciones Clase padre SoAction Son operaciones que se realizan sobre una escena, nodo o ruta. Ejemplos Renderizado SoGlRenderAction Escritura en un fichero SoWriteAction Cálculo de Bounding Boxes SoGetBoundingBoxAction Búsquedas de nodos SoSearchAction Cálculo de la matriz de transformación SoGetMatrixAction

61 Ejemplo SoSeparator * root = new SoSeparator; root->ref(); SoPerspectiveCamera * pcam = new SoPerspectiveCamera; root->addchild(pcam); SoEventCallback * ecb = new SoEventCallback; ecb->addeventcallback(somousebuttonevent::getclasstypeid(), event_cb, viewer); root->addchild(ecb); //Componente de alto nivel utilizado para pintar viewer->setscenegraph( root ); pcam->viewall( root, viewer->getviewportregion() ); // attempting raypick in the event_cb() callback method SoRayPickAction rp( viewer->getviewportregion() ); rp.setpoint(mouseevent->getposition()); rp.apply(viewer->getscenegraph()); rp. getpickedpoint().getpath(); //SoPickedPoint

62 Ejemplo SbMatrix gettrans(sonode *node, SoGroup *root) { SoSearchAction *sa=new SoSearchAction; sa->setnode(node); sa->apply(root); path=searchaction->getpath(); assert(path); } SoGetMatrixAction * gma =new SoGetMatrixAction (SbViewportRegion()); gma->apply(path); return gma->getmatrix()

63 Sensores Derivan de la clase SoSensor Son objetos que detectan cambios en la base de datos Son mecanismos de OI para planificar tareas Existen dos colas de tareas Delay queue: las tareas de esta cola se activan cuando la CPU tiene tiempo libre Timer queue: las tareas de esta cola se activan por un evento temporal Las tareas se activan mediante callbacks

64 Ejemplo viewer->setautoredraw(false); SoTimerSensor* rendertimer = new SoTimerSensor(render,0L); rendertimer->setinterval(render_step); rendertimer->schedule(); void render (void *, SoSensor *) { viewer->render(); }

65 Ejemplo viewer->setautoredraw(false); SoTimerSensor* rendertimer = new SoTimerSensor(render,NULL); rendertimer->setinterval(render_step); rendertimer->schedule(); void render (void *, SoSensor *) { viewer->render(); }

66 Componentes de alto nivel Es propia del gestor de ventanas que utilizamos: SoWin, SoXt, SoGtk, SoQt Nos ofrecen Funciones de inicialización y gestión de ventanas Tratamiento de eventos Áreas para renderizar escenas Componentes para cambiar la escena (editores de materiales ) Capturan los eventos del gestor de ventanas So???::mainLoop() Los utilizan ellos mismos Los pasan a la base de datos Inicialización del gestor de ventanas y la base de datos So???::init

67 Componentes de alto nivel Tipos de objetos Componentes Áreas de renderizado SoWinRenderArea Visualizadores SoWinViewer» SoWinExaminerViewer,SoWinPlaneViewer Otros componentes Dispositivos Captura de eventos Teclado Ratón

68 Ejemplo #include <Inventor/Win/SoWin.h> #include <Inventor/Win/viewers/SoWinExaminerViewer.h> #include <Inventor/nodes/SoBaseColor.h> #include <Inventor/nodes/SoCone.h> #include <Inventor/nodes/SoSeparator.h> int main(int argc, char ** argv) { HWND mainwin = SoWin::init(argc, argv, argv[0]); SoSeparator * root = new SoSeparator; root->ref(); root->addchild(new SoCone); SoWinExaminerViewer * eviewer = new SoWinExaminerViewer(mainwin); eviewer->setscenegraph(root); eviewer->show(); eviewer->settransparencytype(soglrenderaction::sorted_object_blend); SoWin::show(mainwin); SoWin::mainLoop(); // Clean up resources. delete eviewer; root->unref(); return 0; }

69 Relación entre OpenInventor y OpenGl OI permite construir aplicaciones con un alto nivel de abstracción Si no queremos usar los componentes de alto nivel podemos usar OpenGl para el renderizado y el tratamiento de los eventos Nos permite combinar las ventajas de ambos Ejemplo: Pintar un grafo de escena y pasar un filtro al framebuffer. Aumenta la complejidad

70 Implementaciones de OI OI de SGI Gratuito Disponible Irix Linux Coin3d Gratuito con propósitos no comerciales Versión profesional con librerías adicionales Disponible Linux Windows Mac OS X

71 Como utilizar Coin3d con Visual Stutio Instalar las librerias Coin3D Simage (texturas) SoWin o SoQt (según el gestor de ventanas que vayamos a utilizar) Crear una variable de entorno con la dirección de la librería $(COIN3DDIR) C:\COIN3D\ Introducir en el path donde están las dlls $(PATH) C:\COIN3D\BIN Volver a arrancar el sistema

72 Como utilizar Coin3d con Visual Stutio Crear un proyecto Aplicación de consola Vacía Configurar el proyecto C/C++ Preprocessor definition Introducir las variables de entorno de Coin» SIMAGE_DLL, COIN_DLL, SOWIN_DLL» SIMAGE_NOT_DLL, COIN_NOT_DLL, SOWIN_NOT_DLL Preprocessor -> Additional Include Files $(COIN3DDIR)\Include Link Object Library Modules $(COIN3DDIR)\lib\SoWin1.lib $(COIN_DIR)\lib\simage1.lib $(COIN3DDIR)\lib\Coin2.lib

73 Como utilizar Coin3D con gcc Instalación Descargar librerías (Simage, coin, SoXt) Recompilarlos en el orden anterior tar xvfz nombre_paquete-x.y.z.tar.gz cd nombre_paquete-x.y.z./configure make make install (como root) Utilizar los comandos coin-config y soxt-config para compilar y enlazar soxt-config --build nombre_programa fich1.cpp fichn.cpp Para obtener más información sobre estos programas utiliza --help

74 Eon Studio

75 Índice Introducción Paquetes Componentes Arquitectura e interfaz

76 Introducción Toolkit 3D Interfaz gráfico Funciona solo bajo Microsoft Windows Toolkit propietaria Extensible Da soporte para algún dispositivo I/O Cuevas Trackers Funciona sobre DirectX o OpenGl No es una herramienta de modelado Importa modelos (Okino) Dota a los modelos de comportamiento

77 Paquetes Eon Studio Importa modelos Utiliza Okino Creación de modelos interactivos No se necesita experiencia en programación Eon Inmersive Extensión de Eon Studio No incluido en el paquete básico Permite utilizar Eon con dispositivos RV Eon Viewer Permite visualizar proyectos Eon Gratuito

78 Paquetes Eon Raptor Plugin para 3D Studio SDK Librerías de C++ Totalmente integrado con Visual C++ Contiene nuevos wizards Basado en tecnología COM Permite extender los nodos y módulos de Eon Studio Permite integrar modelos Eon en nuestras aplicaciones Eon Turbo Permite publicar en la web modelos Eon Eon Xtra Plugin para explorer Permite visualizar modelos Eon

79 Componentes Árbol de simulación Contiene todos los objetos que participan en la simulación (nodos) Scene graph Nodos Todos los objetos Eon son nodos que se cuelgan del árbol. Tipos Grupo Render Agentes Sensores Modelos de movimiento Scrips

80 Componentes Campos Variables contenidas en los nodos Tipos de datos Números Cadenas Arrays Booleanos Punteros Vectores geométricos (traslaciones, rotaciones ) Tiempo Nodos Clases de campo Field: Campos internos de un nodo EventIn: Campos que recibe un nodo como eventos de entrada EventOut: Campos que recibe un nodo como eventos de salida ExposedField: Campos que pueden ser tratados tanto como eventos de entrada como eventos de salida.

81 Componentes Conexiones y rutas Se define el comportamiento de los nodos conectando sus campos Prototipos Encapsulan nodos y sus conexiones internas

82 Arquitectura

83 Interfaz

Programación de aplicaciones RV

Programación de aplicaciones RV Bibliografía Programación de aplicaciones RV TÉCNICAS Y DISPOSITIVOS DE REALIDAD VIRTUAL MASTER EN INFORMÁTICA GRÁFICA, JUEGOS Y REALIDAD VIRTUAL Marcos García Marcos.garcía@urjc.es Virtual Reality Technology

Más detalles

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) {

//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) { Solución 4: /******************************************************** * * Este programa permite visualizar ficheros iv (vrml) * ********************************************************/ //Según el sistema

Más detalles

INGENIERÍA INFORMÁTICA Curso Académico 2006/2007. Sofía Bayona Beriso Francisco Javier Sánchez Zurdo. Realidad Virtual y Animación 1

INGENIERÍA INFORMÁTICA Curso Académico 2006/2007. Sofía Bayona Beriso Francisco Javier Sánchez Zurdo. Realidad Virtual y Animación 1 INGENIERÍA INFORMÁTICA Curso Académico 2006/2007 Sofía Bayona Beriso Francisco Javier Sánchez Zurdo Realidad Virtual y Animación 1 PÁGINA DE LA ASIGNATURA http://dac.escet.urjc.es/docencia/rva/ Realidad

Más detalles

Desarrollo de técnicas cooperativas para un editor de objetos 3D

Desarrollo de técnicas cooperativas para un editor de objetos 3D Desarrollo de técnicas cooperativas para un editor de objetos 3D Proyecto de Fin de Carrera Ingeniería Informática David Sánchez Crespillo Universitat de les Illes Balears Año 2000 Índice General 1. Introducción

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

Capítulo VI: Java 3D

Capítulo VI: Java 3D Capítulo VI: Java 3D 6.1 Definición Java 3D es un API de gráficos 3D desarrollada por Sun como una extensión del JDK 2 del lenguaje de programación Java. Es una colección de clases que tienen como objetivo

Más detalles

PROFESORES Y TUTORÍAS TEMARIO PÁGINA DE LA ASIGNATURA. http://dac.etsii.urjc.es/docencia/rva

PROFESORES Y TUTORÍAS TEMARIO PÁGINA DE LA ASIGNATURA. http://dac.etsii.urjc.es/docencia/rva INGENIERÍA INFORMÁTICA Curso Académico 2011/2012 PÁGINA DE LA ASIGNATURA http://dac.etsii.urjc.es/docencia/rva Realidad Virtual y Animación 1 Realidad Virtual y Animación 2 PROFESORES Y TUTORÍAS Álvaro

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

REALIZACIÓN DE UN MOTOR DE RENDER PARA DISPOSITIVOS MÓVILES BASADO EN IRRLICHT. Autor: Javier Meseguer de Paz Dirigido por: Antonio Berlanga de Jesús

REALIZACIÓN DE UN MOTOR DE RENDER PARA DISPOSITIVOS MÓVILES BASADO EN IRRLICHT. Autor: Javier Meseguer de Paz Dirigido por: Antonio Berlanga de Jesús REALIZACIÓN DE UN MOTOR DE RENDER PARA DISPOSITIVOS MÓVILES BASADO EN IRRLICHT Autor: Javier Meseguer de Paz Dirigido por: Antonio Berlanga de Jesús Plan de la presentación Introducción Estado del arte

Más detalles

GUÍA PRÁCTICA PARA EL DESARROLLO DE APLICACIONES BASADAS EN DETECCIÓN Y SEGUIMIENTO FACIAL CON KINECT YURANNY CASTRO HERNÁNDEZ

GUÍA PRÁCTICA PARA EL DESARROLLO DE APLICACIONES BASADAS EN DETECCIÓN Y SEGUIMIENTO FACIAL CON KINECT YURANNY CASTRO HERNÁNDEZ GUÍA PRÁCTICA PARA EL DESARROLLO DE APLICACIONES BASADAS EN DETECCIÓN Y SEGUIMIENTO FACIAL CON KINECT YURANNY CASTRO HERNÁNDEZ JUAN CARLOS BEJARANO JIMÉNEZ FACULTAD DE INGENIERÍA UNIVERSIDAD AUTÓNOMA DEL

Más detalles

3.4. Reload Editor ( Guía de Uso).

3.4. Reload Editor ( Guía de Uso). 3.4. Reload Editor ( Guía de Uso). Anterior 3. Lors Management Siguiente 3.4. Reload Editor ( Guía de Uso). 3.4.1. Preguntas básicas sobre Reload Editor. - Qué hace el programa Reload Editor? RELOAD Editor

Más detalles

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

Más detalles

Creación de Videojuegos en OpenGL

Creación de Videojuegos en OpenGL Prof. Esmitt Ramírez J. Creación de Videojuegos en OpenGL XII-V-X Agenda OpenGL Juegos de Video Modelación Rendering Iluminación y Texturas Otros Aspectos Videos Ideas Finales OpenGL API para desarrollar

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25.

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25. INDICE Programación Introducción 706 Capitulo 21 BASIC 711 Introducción 711 Sintaxis 713 Procedimientos y control de flujo 713 Tipos de datos 714 Disponibilidad y variantes del dialecto 714 Capitulo 22.

Más detalles

Versión 1.1 Fecha: 13-10-2002 Autores: Francisco González García Ismael García Fernández

Versión 1.1 Fecha: 13-10-2002 Autores: Francisco González García Ismael García Fernández INFORME DE LAS HERRAMIENTAS DE DESARROLLO PARA LA PLAYSTATION 2 Versión 1.1 Fecha: 13-10-2002 Autores: Francisco González García Ismael García Fernández LIBRERIAS Y UTILIDADES: LIBRERIA PS2DEV La librería

Más detalles

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica A. Da Silva, V. Hernández y J.F. Martínez Departamento de Ingeniería y Arquitecturas Telemáticas.

Más detalles

El Sistema Operativo Linux

El Sistema Operativo Linux Introducción El Sistema Operativo Linux La mayor parte de los ordenadores que existen en la actualidad están diseñados de forma que puedan ejecutar diversas tareas o programas. Es evidente, que si cada

Más detalles

Estudio comparativo de distintos lenguajes de programación n orientados a objeto

Estudio comparativo de distintos lenguajes de programación n orientados a objeto Estudio comparativo de distintos lenguajes de programación n orientados a objeto Cristo Manuel Amezcua Martínez Felipe Molina de la Torre Marta Moreno Mata David Rivas Ortega Orientación n a Objetos Herencia

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Manual de utilización del Graphic Annotation Tool (GAT) para secuencias de vídeo

Manual de utilización del Graphic Annotation Tool (GAT) para secuencias de vídeo Tecnologías para la Creación y Gestión Automatizada de Contenidos Audiovisuales Inteligentes Manual de utilización del Graphic para secuencias de vídeo i3media No. Identificación: C Nivel de Confidencialidad:

Más detalles

App Inventor. Alejandro Correa Rodríguez Sara Rijo García. alu0100354577@ull.edu.es alu0100505665@ull.edu.es

App Inventor. Alejandro Correa Rodríguez Sara Rijo García. alu0100354577@ull.edu.es alu0100505665@ull.edu.es App Inventor Alejandro Correa Rodríguez Sara Rijo García alu0100354577@ull.edu.es alu0100505665@ull.edu.es Índice 1. Introducción 2. Primeros pasos en App Inventor 3. Elementos básicos de App Inventor

Más detalles

Dr. Queue con Blender Una granja de render GNU Por Alexandre Silva Costa anakinpendragon@yahoo.com.br

Dr. Queue con Blender Una granja de render GNU Por Alexandre Silva Costa anakinpendragon@yahoo.com.br Dr. Queue con Blender Una granja de render GNU Por Alexandre Silva Costa anakinpendragon@yahoo.com.br Este artículo tiene la intención de enseñar a usar el soft de animaciones blender con la granja de

Más detalles

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D.

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D. Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Laboratorio de C.A.D. UMH 1 1.1. INTRODUCCIÓN 1.2. SOFTWARE NECESARIO 1.3. CONFIGURACIÓN DEL PROYECTO EN VS2010

Más detalles

CURSO INTERMEDIO DE PROGRAMACIÓN EN ANDROID

CURSO INTERMEDIO DE PROGRAMACIÓN EN ANDROID CURSO INTERMEDIO DE PROGRAMACIÓN EN ANDROID 1. Entorno de desarrollo y primera aplicación 1. El mundo Android 1.1 Android y las versiones 1.2 Personalizaciones del sistema operativo. 1.3 Dispositivos Android

Más detalles

Quienes somos: Profesores:

Quienes somos: Profesores: Evolis Centro de Formación, SL Escuela especializada en formación 3D, Diseño y Programación de Videojuegos Quienes somos: EVOLIS lleva una década impartiendo formación en todas las modalidades: Presenciales,

Más detalles

CURSO Y PROYECTO DE INDIE GAMES PARA IOS

CURSO Y PROYECTO DE INDIE GAMES PARA IOS CURSO Y PROYECTO DE INDIE GAMES PARA IOS OCTUBRE 2013 DATOS DEL CURSO DURACIÓN TOTAL: 220 horas divididas en 9 meses, 6 de formación y 3 de proyecto final en el que se desarrollará un juego completo para

Más detalles

Capítulo 3: Desarrollo e Implementación

Capítulo 3: Desarrollo e Implementación Capítulo 3: Desarrollo e Implementación En el capítulo 2 se presenta el diagrama del modelo entidad-relación (figura 2.3) que la estructura básica de la arquitectura de la herramienta de software que este

Más detalles

Desarrollo de videojuegos Fernando Berzal, berzal@acm.org Herramientas de desarrollo Motores de videojuegos[gamegame engines] http://en.wikipedia.org/wiki/game_engine Sistemas diseñados para la creación

Más detalles

Interfaces y Manejadores de Dispositivos

Interfaces y Manejadores de Dispositivos Informática Electrónica Unidad 6 Interfaces y Manejadores de Dispositivos Modalidad y Materiales Dos clases expositivas a cargo del docente responsable (jlsimon@fceia.unr.edu.ar) Una práctica cargo de

Más detalles

CURSO. Unity. Powered by. duración 150 horas. precio 1.750. contenido del curso en el interior

CURSO. Unity. Powered by. duración 150 horas. precio 1.750. contenido del curso en el interior CURSO Unity Powered by duración 150 horas precio 1.750 contenido del curso en el interior PRESENTACIÓN Y OBJETIVOS Mauricio García. Programador en The Game Kitchen UNITY es la herramienta de desarrollo

Más detalles

Introducción a la programación (Java)

Introducción a la programación (Java) Introducción a la programación (Java) Preparar las herramientas de desarrollo Introducción La primera parte de este documento es una guía para la instalación del software necesario para realizar programas

Más detalles

Fundamentos de software. Introducción a la Informática 2010-2011

Fundamentos de software. Introducción a la Informática 2010-2011 Fundamentos de software Introducción a la Informática 2010-2011 Objetivos Describir las 3 categorías principales de software y su relación Explicar la correspondencia entre algoritmos y programas Discutir

Más detalles

Descarga, instalación y uso de herramientas:

Descarga, instalación y uso de herramientas: Descarga, instalación y uso de herramientas: Eclipse: Instalación de Eclipse (Más información en http://www.eclipse.org/) 1. Copiar, descomprimir e instalar si es necesario la última versión de Eclipse

Más detalles

videalab Uso de software libre en investigación y explotación de aplicaciones gráficas Alberto Jaspe (jaspe@videalab.udc.es)

videalab Uso de software libre en investigación y explotación de aplicaciones gráficas Alberto Jaspe (jaspe@videalab.udc.es) videalab Uso de software libre en investigación y explotación de aplicaciones gráficas Alberto Jaspe (jaspe@videalab.udc.es) Índice I. El laboratorio videalab II. III. IV. SW libre vs. SW propietario La

Más detalles

Curso de verano. Biología Computacional: Análisis masivo de datos ómicos

Curso de verano. Biología Computacional: Análisis masivo de datos ómicos Curso de verano Biología Computacional: Análisis masivo de datos ómicos Centro Mediterráneo Universidad de Granada Con la colaboración de: Departamento de Arquitectura y Tecnología de Computadores Consejo

Más detalles

Módulo 1 El lenguaje Java

Módulo 1 El lenguaje Java Módulo 1 El lenguaje 1.1 Presentación de es un lenguaje de programación desarrollado por la empresa Sun Microsystems en 1991 como parte de un proyecto secreto de investigación llamado Green Proyect, con

Más detalles

Modelado y Simulación 3D en Ejs. Carlos A. Jara Bravo Grupo AUROVA. Universidad de Alicante

Modelado y Simulación 3D en Ejs. Carlos A. Jara Bravo Grupo AUROVA. Universidad de Alicante Modelado y Simulación 3D en Ejs Carlos A. Jara Bravo Grupo AUROVA. Universidad de Alicante Índice de la presentación. Motivación. Estructura software de la librería 3D. Capacidades gráficas. Algunos ejemplos

Más detalles

Integración de NetBeans con OpenOffice.org

Integración de NetBeans con OpenOffice.org Integración de NetBeans con OpenOffice.org Índice de contenido Licencia...1 Alcance...1 Antrecedentes...1 Instalación del módulo de desarrollo en NetBeans...2 Configurar...7 Creando una función para Calc...8

Más detalles

Tema 2. Software. Fundamentos de Informática Grado en Ingeniería Mecánica

Tema 2. Software. Fundamentos de Informática Grado en Ingeniería Mecánica Tema 2. Software. Fundamentos de Informática Grado en Ingeniería Mecánica Definición de software «Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que

Más detalles

Demo FireMonkey La nueva generación de desarrollo de aplicaciones de negocio

Demo FireMonkey La nueva generación de desarrollo de aplicaciones de negocio Demo FireMonkey La nueva generación de desarrollo de aplicaciones de negocio Renacimiento del software de consumo Experiencia de usuario rica con medios y gráficos Intuitivo e interactivo fácil de aprender

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

La Fase de Diseño. QUÉ vamos a hacer? CÓMO lo vamos a hacer? Gestión de Proyectos: La Fase de Diseño

La Fase de Diseño. QUÉ vamos a hacer? CÓMO lo vamos a hacer? Gestión de Proyectos: La Fase de Diseño QUÉ vamos a hacer? CÓMO lo vamos a hacer? Pág. 1 1. Selección de herramientas 1.1 Motor gráfico. 1.2 Motor físico. 1.3 Herramienta de modelado y animación. 1.4 Lenguaje de programación. 1.5 Gestor de proyectos.

Más detalles

CURSOS de DISEÑO y PROGRAMACIÓN de VIDEOJUEGOS

CURSOS de DISEÑO y PROGRAMACIÓN de VIDEOJUEGOS CURSOS de DISEÑO y PROGRAMACIÓN de VIDEOJUEGOS Introducción Te apasionan los videojuegos? Conoces todas las plataformas? Y todos los géneros? Crees tener la idea que revolucionara el mercado? Quieres aprender

Más detalles

Práctica 3: Utilización de Charts dobles, Waveforms Graphs, propiedades de gráficos, creación de Waveforms y su almacenamiento en disco.

Práctica 3: Utilización de Charts dobles, Waveforms Graphs, propiedades de gráficos, creación de Waveforms y su almacenamiento en disco. Práctica 3: Utilización de Charts dobles, Waveforms Graphs, propiedades de gráficos, creación de Waveforms y su almacenamiento en disco. En esta práctica se partirá de la aplicación practica2.vi generada

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

BÁSICOS APP INVENTOR. Manual de Introducción a AppInventor

BÁSICOS APP INVENTOR. Manual de Introducción a AppInventor BÁSICOS APP INVENTOR Manual de Introducción a AppInventor Contenido 1. Qué es AppInventor?... 2 2. Qué tipo de aplicaciones pueden crearse con AppInventor?... 3 3. Cómo se construye una aplicación en

Más detalles

Unidad 2: El sistema operativo. Trabajo sin conexión.

Unidad 2: El sistema operativo. Trabajo sin conexión. Unidad 2: El sistema operativo. Trabajo sin conexión. Un sistema operativo es un conjunto de programas de control que actúa como intermediario entre el usuario y el hardware de un sistema informático,

Más detalles

1 Introducción a Delphi 2.0 Punto de partida Contenido de este libro Cómo se puede leer este libro Instalación del CD 2 Delphi 2.0 Cambios al entorno

1 Introducción a Delphi 2.0 Punto de partida Contenido de este libro Cómo se puede leer este libro Instalación del CD 2 Delphi 2.0 Cambios al entorno 1 Introducción a Delphi 2.0 Punto de partida Contenido de este libro Cómo se puede leer este libro Instalación del CD 2 Delphi 2.0 Cambios al entorno Cambios al lenguaje Cambios al compilador Nuevos objetos

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL UNIVERSIDAD NACIONAL DE INGENIERÍA CURSO DE JAVA CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Telf. : 481-6693 /381-3854 Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES

Más detalles

CAPITULO 5 DESARROLLO DEL SISTEMA PARA EL MUNDO VIRTUAL CAMPESTRE

CAPITULO 5 DESARROLLO DEL SISTEMA PARA EL MUNDO VIRTUAL CAMPESTRE CAPITULO 5 DESARROLLO DEL SISTEMA PARA EL MUNDO VIRTUAL CAMPESTRE 66 5.1 Introducción En el capítulo 1 se expuso un marco general sobre el área de Realidad Virtual y de los elementos que la rodean. Además

Más detalles

Tema 1: y el lenguaje Java 1.Programación orientada a objetos 2.El lenguaje Java 3.Compilación, bytecode y JVMs 4.Entornos de desarrollo Java 5.Java vs otros lenguajes OO Programación orientada a objetos

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

PROYECTO FINAL DE CARRERA. Desarrollo de un plugin de JMeter para la minería de datos de estructuras de páginas web.

PROYECTO FINAL DE CARRERA. Desarrollo de un plugin de JMeter para la minería de datos de estructuras de páginas web. ESCUELA POLITÉCNICA SUPERIOR UNIVERSITAT DE LES ILLES BALEARS PROYECTO FINAL DE CARRERA Estudios : Ingeniería en Informática Título: Desarrollo de un plugin de JMeter para la minería de datos de estructuras

Más detalles

Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online)

Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online) Postgrado en Desarrollo de Aplicaciones de Escritorio + Desarrollos.NET Framework 4.5 (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Postgrado en Desarrollo de Aplicaciones de Escritorio

Más detalles

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java Qué es? Introducción a es Un lenguaje de programación Un entorno de desarrollo Un entorno de ejecución de aplicaciones Un entorno de despliegue de aplicaciones Utilizado para desarrollar, tanto applets

Más detalles

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

%& %)& '$!%*+ $, %%%&$ %%

%& %)& '$!%*+ $, %%%&$ %% OBJETIVO!!"#$$ %& '(%"#% (% %& %)& '$!%*+ $, %%%&$ %% REQUERIMIENTOS SOFTWARE VERSIÓN LINK Java Development Kit (JDK) 6 http://java.sun.com NetBeans 6.1 http://www.netbeans.org MySQL 5.0 http://dev.mysql.com/

Más detalles

Capítulo 1 EMBEDDED VISUAL C++ (EVC)

Capítulo 1 EMBEDDED VISUAL C++ (EVC) Capítulo 1 EMBEDDED VISUAL C++ (EVC) 0 Introducción En la presente práctica se pretender ofrecer la primera toma de contacto con el entorno de desarrollo que se usa para programar PDAs en el lenguaje de

Más detalles

Curso de Informática básica

Curso de Informática básica Universidad Rey Juan Carlos Curso de Informática básica Estefanía Martín Barroso Liliana Patricia Santacruz Valencia Laboratorio de Tecnologías de la Información en la Educación Contenidos 2 Bloque 1:

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

Programación de Sistemas

Programación de Sistemas Programación s Unidad 2 s Operativos y Programación Software Base Contenido Introducción a los s Operativos (SO) Definición y conceptos SO Visualización un sistema cómputo s distintos puntos vista Capas

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Paradigmas de programación 2 Paradigmas de programación Paradigma de programación estructurada Enfatiza la separación datos de un programa

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

Paquete office 2007 PROGRAMA FORMATIVO. Código: INFO042. Duración: 75 horas. Objetivos: Contenidos: Office 2007

Paquete office 2007 PROGRAMA FORMATIVO. Código: INFO042. Duración: 75 horas. Objetivos: Contenidos: Office 2007 Paquete office 2007 Código: INFO042 Duración: 75 horas Objetivos: Office 2007 Crear y elaborar documentos, formatos, numeración, viñetas, etc. Crear presentaciones, efectos especiales, plantillas, barra

Más detalles

Sistema Inteligente de Exploración

Sistema Inteligente de Exploración Observatorio Municipal de Estadística Sistema Inteligente de Exploración Capítulos 1. Consideraciones iniciales y requerimientos... 2 2. Navegación... 3 3. Consulta de indicadores... 5 3.1. Elaboración

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Servicios Web con.net

Servicios Web con.net 1. Introducción a los servicios Web Servicios Web con.net Básicamente un servicio Web es un clase que se publica en un servidor Web con soporte para ASP.NET (actualmente el único disponible es el Internet

Más detalles

1. CARACTERÍSTICAS DE LINUX.

1. CARACTERÍSTICAS DE LINUX. UNIDAD 1: EL SISTEMA OPERATIVO LINUX 1. CARACTERÍSTICAS DE LINUX. El sistema operativo LINUX es un conjunto de programas y una serie de utilidades que permiten al usuario gestionar los recursos hardware

Más detalles

Prácticas de programación en C con MinGW Developer Studio

Prácticas de programación en C con MinGW Developer Studio Prácticas de programación en C con MinGW Developer Studio MinGW Developer Studio es un entorno de desarrollo integrado (IDE) para la programación en lenguaje C gratuito y cómodo de usar. Se ejecuta en

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

Entorno de programación de Sistemas Operativos.

Entorno de programación de Sistemas Operativos. Entorno de programación de Sistemas Operativos. La programación de aplicaciones sobre sistemas operativos supone conocer y usar las bibliotecas con las llamadas al sistema operativo. Para hacer una aplicación

Más detalles

Desarrollo de un simulador de laparoscopia

Desarrollo de un simulador de laparoscopia Desarrollo de un simulador de laparoscopia Este tutorial ha sido generado gracias al trabajo de Oscar Andrés Vivas, de la Universidad del Cauca, y al simulador desarrollado por Daniel Ivorra Ruiz de la

Más detalles

El lenguaje de Programación C. Fernando J. Pereda

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

El lenguaje de programación Java

El lenguaje de programación Java Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red

Más detalles

CONFERENCIA REALIDAD AUMENTADA. Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com

CONFERENCIA REALIDAD AUMENTADA. Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com CONFERENCIA REALIDAD AUMENTADA Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com Bogotá, Septiembre 2012 OBJETIVO GENERAL El objetivo es presentar un recorrido actualizado por las diferentes

Más detalles

Continuous Delivery (y 3)

Continuous Delivery (y 3) Continuous Delivery (y 3) Sesión 11a 2 Entornos de prueba La última parte de la tubería de despliegue consiste en probar los builds compilados en distintos entornos de prueba Distintos entornos Tests de

Más detalles

Tema 2: La Tecnología Java

Tema 2: La Tecnología Java Tema 2: La Tecnología Java 0 La Tecnología de Java Es : Un lenguaje de programación Similar a C/C++ sin los problemas de manejo de memoria. Un ambiente de desarrollo Compilador, intérprete, generados de

Más detalles

Tema 1: Introducción al S.O.

Tema 1: Introducción al S.O. Tema 1: Introducción al S.O. Enrique Soriano Laboratorio de Sistemas, Grupo de Sistemas y Comunicaciones, URJC 18 de enero de 2012 (cc) 2008 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados.

Más detalles

UNIVERSIDAD POLITÉCNICA DE VALENCIA INGENIERÍA SUPERIOR DE INFORMÁTICA. Curso académico 2011-2012. Proyecto Fin de Carrera

UNIVERSIDAD POLITÉCNICA DE VALENCIA INGENIERÍA SUPERIOR DE INFORMÁTICA. Curso académico 2011-2012. Proyecto Fin de Carrera UNIVERSIDAD POLITÉCNICA DE VALENCIA INGENIERÍA SUPERIOR DE INFORMÁTICA Curso académico 2011-2012 Proyecto Fin de Carrera LIBRERÍAS WRAPPER PARA EL ACCESO A CÁMARAS KINECT Y HERRAMIENTAS PARA EL CALIBRADO

Más detalles

Fundamentos de programación I. - Anexo de Software -

Fundamentos de programación I. - Anexo de Software - Fundamentos de programación I - - 1. Introducción 1.1. Introducción a Dev-C++ y DJGPP 1.1.1. Qué es Dev-C++? Dev-C++ es un Entorno Integrado de Desarrollo (Integrated Development Environment, IDE) capaz

Más detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

Más detalles

C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS

C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS 1. OBJETIVOS GENERALES.- Con este módulo se pretender formar a un técnico que sea capaz de utilizar herramientas informáticas y de aplicación

Más detalles

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada.

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Esquema Introducción... 2 Historia... 2 Suites... 2 Herramientas ofimáticas... 3 Tipos de programas ofimáticos:...

Más detalles

VACL para KDE3: Manual del desarrollador. Francisco José Calvo Fernández

VACL para KDE3: Manual del desarrollador. Francisco José Calvo Fernández VACL para KDE3: Manual del desarrollador Francisco José Calvo Fernández VACL para KDE3: Manual del desarrollador por Francisco José Calvo Fernández Este documento describe el proceso de construcción del

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

Más detalles

ÍNDICE SISTEMAS OPERATIVOS... 5

ÍNDICE SISTEMAS OPERATIVOS... 5 INTRODUCCIÓN HABILIDADES INFORMÁTICAS BÁSICAS PARA ADULTOS SKILLS es un completo curso destinado a alumnos adultos, en particular, a empleados de mayor edad, de forma que puedan adquirir/mejorar sus conocimientos

Más detalles

Apéndice B. Telefonía a través de Microsoft TAPI 1. B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit

Apéndice B. Telefonía a través de Microsoft TAPI 1. B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit Apéndice B. Telefonía a través de Microsoft TAPI 1 B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit El archivo que hace la llamada es TAPISend que se encuentra en formato ejecutable.

Más detalles

SENTINEL REMOTE CONTROL (S.R.C)

SENTINEL REMOTE CONTROL (S.R.C) SENTINEL REMOTE CONTROL (S.R.C) Versión G-0.5 Índice de contenidos 0.Consideraciones acerca de este producto...3 1.Objetivo del SRC...3 2.0 Instalación...3 2.1.Parte cliente (gclient)...4 2.1.Parte servidora

Más detalles

Prólogo...3 Agradecimientos...4. Tabla de Contenidos...5. Lista de figuras...17. Apartado I: El ecosistema móvil...33

Prólogo...3 Agradecimientos...4. Tabla de Contenidos...5. Lista de figuras...17. Apartado I: El ecosistema móvil...33 Tabla de Contenidos - 5 Tabla de Contenidos Prólogo...3 Agradecimientos...4 Tabla de Contenidos...5 Lista de figuras...17 Introducción...25 La historia de Delphi...26 Delphi para plataformas móviles...29

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles