Progettazione e sviluppo di un gesture engine per la visualizzazione di Mappe digitali in 3D

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione e sviluppo di un gesture engine per la visualizzazione di Mappe digitali in 3D"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI ROMA TOR VERGATA CORSO DI LAUREA IN INFORMATICA Progettazione e sviluppo di un gesture engine per la visualizzazione di Mappe digitali in 3D Tesi di Laurea in Informatica di Relatore: Prof. Gambosi Giorgio Correlatore: Ing. Bei Andrea

2 Sommario 1. INTRODUZIONE MultiTouch: concetti fondamentali Obiettivi e Struttura della tesi CONTESTO L evoluzione del rapporto uomo macchina La tecnologia MultiTouch Il laboratorio MultiTouch di 4it Tecnologia MultiTouch Hardware MultiTouch Software MultiTouch Applicativo OSC (TouchLib) Framework TUIO ARCHITETTURA GENERALE GESTURE CONTROL SYSTEM Concetti fondamentali Le gesture per la navigazione in mappe 3D La gesture rotate La gesture tilt La gesture zoom e unzoom Architettura applicativa Gesture ingester Gesture recognizer Il gesture modeler, algoritmo basato sull OCR Algoritmo immediate recognizer Principali differenze e domini di utilizzo

3 5. GOOGLE TOUCH: PROTOTIPO DI NAVIGAZIONE 3D IN AMBIENTE GOOGLE EARTH Google earth Tecnologia COM e google Api Architettura applicativa L integrazione con google earth Utilizzo delle google Api L integrazione con il framework TUIO e l applicativo OSC Il TUIO Listener e il TUIO Client, il pattern Observer Il mappamondo digitale in 3D Il movimento del globo (l emulazione mouse) La tecnologia JNI (Java native interface) La DLL(Dynamic-link library) Mouse VIDEO APPLICATIVO GLOSSARIO BIBLIOGRAFIA

4 1. Introduzione 1.1. MultiTouch: concetti fondamentali E una tecnologia a schermo tattile che rappresenta una evoluzione di quella touch screen. Si differenzia da essa per il fatto che è sensibile al tocco in più punti diversi della superficie contemporaneamente. La tecnologia MultiTouch è formata da due parti, la parte hardware e la parte software. La parte hardware è formata da uno schermo MultiTouch che riconosce simultaneamente più blob detected, ovvero più punti intercettati dallo schermo MultiTouch tramite il tocco di una mano, mentre la parte software ha il compito di interpretare e manipolare ciascun blob detected intercettato dall hardware. Il MultiTouch inoltre è in grado di supportare più di un utente alla volta sulla stessa superficie simultaneamente, rendendo l interazione uomo-macchina molto più facile e intuitiva di quella che potrebbe offrire un puntatore ad un singolo cursore come il mouse. La tecnologia multitouch si differenzia in due grandi tecnologie, quella basata sulla videocamera e quella basata sulle reti resistive. La tecnologia basata sulle reti resistive è molto efficiente, ma attualmente ha dei costi molto elevati per essere commercializzata, pertanto viene maggiormente utilizzata per schermi di dimensioni molto piccole e generalmente per applicazioni single-touch o al massimo bi-touch (palmari,navigatori,totem, ecc.). Mentre la tecnologia basata sulla telecamera è di difficile implementazione, ma ha sicuramente maggior sbocchi commerciali avendo costi nettamente minori della tecnologia a reti resistive (non a caso surface, la scrivania multitouch di microsoft, prossima ad uscire sul mercato si incentrerà proprio su tale tecnologia). Per dialogare in maniera facile e intuitiva con l utente le tecnologie multitouch utilizzano il concetto di gesture, si tratta di particolari e intuitivi movimenti delle dita per compiere delle funzioni applicative, eliminando le interfacce grafiche (bottoni, scroll bar, menù, ecc.) nel contesto di una applicazione Obiettivi e Struttura della tesi L obiettivo di questa tesi è quello di realizzare un applicazione MultiTouch che offra all utente la possibilità di navigare all interno di mappe digitali in 3D in maniera facile e intuitiva, utilizzando solo il tocco delle mani sullo schermo. La tesi è composta da due parti principali: 1. La realizzazione di un Gesture Engine che comprende la realizzazione e il riconoscimento di una gesture, ovvero di particolari movimenti delle dita sul dispositivo, per applicarla e associarla all esecuzione di funzioni applicative di navigazione in mappe 3D. 2. la realizzazione di un prototipo per la navigazione in mappe 3D su google earth mediante MultiTouch, tramite l utilizzo e l integrazione delle google API e i driver del Mouse di sistema. 4

5 2. Contesto 2.1. L evoluzione del rapporto uomo macchina Il sempre maggior uso di applicazioni informatiche nelle nostre case, uffici, auto, luoghi di commercio e turismo, implica la necessità di una progettazione sia strutturale sia di usabilità che sappia tenere conto dei vari possibili contesti di utilizzo, degli obiettivi degli utenti e delle nuove tecnologie di interazione. L'informatica perciò, diventa sempre più una disciplina in cui l interattività e ed in generale la comunicazione con gli utenti si pongono come elementi cruciali della concezione e progettazione delle soluzioni. tecniche. L interazione uomo macchina è diventata in poco tempo una delle principali materie per la progettazione e lo sviluppo delle applicazioni informatiche, mutuando e facendo propri i risultati di altre discipline come la psicologia, l ergonomia e il design che aiutano a capire e ad intraprendere la comunicazione con l utente. La comunicazione uomo-macchina tende ad essere simile, se non uguale alla comunicazione tra esseri umani e conduce all affermazione del paradigma dell'interazione naturale. La tecnologia MultiTouch è l espressione massima di questi concetti, introduce infatti, in un contesto di information technology, le caratteristiche di spontaneità, immediatezza e naturalezza. Il suo successo commerciale e sociale è dovuto anche all inserimento di strumenti di comune utilizzo come gli sportelli bancomat, i totem (ticket service, navigazione internet, ecc) e i palmari (Apple iphone e Windows mobile). Una parentesi particolare va aperta per l iphone della Apple, infatti questo strumento, a differenza degli sportelli bancomat e dei totem che sono strumenti mono touch, ha portato il concetto di gesture nella nostra società, rendendo per la prima volta la telefonia cellulare uno strumento multitouch, grazie a questo è diventato uno se non il maggior fenomeno commerciale degli ultimi anni (vendute in un giorno più di unità) La tecnologia MultiTouch La sua storia comincia agli inizi degli anni 80, con prototipi di tavolette MultiTouch all'università di Toronto e schermi MultiTouch nei laboratori della Bell Labs. Più tardi alla fine degli anni 90, l'università del Delaware sviluppa un sofisticato sistema di riconoscimento gesti a due mani. Questo sistema fu la base per igesture mouse pad e per le tastiere TouchStream commercializzate da Fingerworks nel La tastiera TouchStream fu notevole per la sua unica ergonomia: il puntatore e il trascinamento veniva creato da due o più dita sopra le lettere stampate della tastiera, eliminando così la funzionalità del mouse stesso, ma implementando essa nella tastiera stessa. Nel 2005 Fingerworks fallì, ad opera di una importante azienda sempre attenta al mondo tecnologico, la Apple Inc., la quale assunse i due ingegneri della ormai ex-fingerworks, per realizzare diversi prototipi su base MultiTouch. Il primo display ad essere commercializzato con tecnologia MultiTouch fu Lemur Input device, un controller multimediale professionale creato dalla compagnia francese JazzMutant nel Nel luglio 5

6 2006, Apple Inc. registra la parola MultiTouch tra i suoi brevetti con l'avvento del loro primo dispositivo MultiTouch, l'iphone, invenzione dell'anno Già nell'annata la Apple Inc. con a capo John Sculley, all'epoca CEO Apple, prevedeva un futuro con questa tecnologia, immaginavano computer molto trasportabili, comunicazione wireless, un grande network di documenti ipertestuali, interfacce sensibili al tocco e videochat. Essa incorporò tutta questa fantascienza in due concept chiamati Knowledge Navigator e l'altro Future Shock dove si poteva sognare sulle future interfacce tra uomo e macchina. [1] Attualmente ci sono tre grandi aziende leader del mercato: Apple Inc, Ntrig e Microsoft. La Apple con l uscita dell iphone ha commercializzato il primo prodotto multi-touch della storia, registrando il brevetto relativo al multitouch. La Microsoft con la prossima uscita di surface (una vera e propria scrivania multimediale), si sta per inserire nel mercato, il prodotto utilizzerà la tecnologia basata sulla telecamera a luce diffusa per il rilevamento dei punti di contatto. La Ntrig, fondata nel 1999 e sostenuta da aziende internazionali di fama e rilievo, è un azienda leader per la distribuzione e la ricerca nel campo della tecnologia multitouch, nonché leader mondiale per la vendita di schermi LCD mono o dual touch, sta lavorando per la prossima uscita del primo schermo multitouch LCD di media dimensione (ca 20 pollici) Il laboratorio MultiTouch di 4it La 4it è un azienda che offre servizi, soluzioni e prodotti IT ad alto valore aggiunto, per la gestione e la valorizzazione delle informazioni e per la realizzazione di sistemi software complessi. 4it sostiene l innovatività delle sue soluzioni con la costante attività di ricerca e sperimentazione del proprio laboratorio su Open Source; Mobile Computing e servizi Location Based in ambiente Microsoft; Content Management e Digital Library; Tecnologia MultiTouch (Sin); Il laboratorio MultiTouch di 4it (Sin) nasce dalla realizzazione di una superficie tattile che consente di interagire con oggetti digitali utilizzando entrambe le mani, potendo toccare la superficie in diversi punti e supportando più di utente alla volta. Sin è il risultato del lavoro di persone che hanno dedicato mesi allo studio delle tecnologie e delle tecniche per rendere il sistema facilmente usabile da tutti gli utenti: giovani o meno giovani. La tecnologia hardware MultiTouch di Sin non è sensibile direttamente al tocco, ma utilizza la tecnologia Laser Light Plane per l'individuazione di ogni punto di contatto. 6

7 (fig. 1 architettura hardware LLP) (fig. 2 campo visivo della telecamera tec. LLP) LLP Parts List - Superficie di contatto (vetro oppure plexiglass) : la parte tattile dell architettura - Laser a raggi infrarossi: posto 1mm sopra la superficie di contatto - Diffusore: trasmette la luce in maniera omogenea - Superficie di proiezione (pellicola opaca): pannello di proiezione sulla superficie di contatto - Video Camera con filtro banda passante IR: acquisizione della luce infrarossa diffusa - Proiettore: proietta sul pannello il video (schermo del pc) [2] 7

8 Sin ha adottato la tecnologia LLP e ne ha valorizzato ulteriormente le caratteristiche. I laser infrarossi sono posizionati appena sopra la superficie di contatto, illuminandone la parte frontale. Quando un dito o qualsiasi altro oggetto interferisce con la luce del laser si crea una riflessione del raggio infrarosso, provocandone una deviazione di 90 gradi (IR Blob), la camera posta sottostante la superficie tattile cattura tale evento e ne rileva la posizione. Il filtro a banda passante IR assicura alla telecamera di intercettare solo gli IR Blob, assorbendo tutte le altre lunghezze d onda e quindi eliminando qualsiasi rumore che potrebbe interferire la loro corretta localizzazione. La superficie tattile ovviamente deve anche essere utilizzata come schermo per il sistema, per questo Sin utilizza un proiettore e una pellicola opaca che, applicata direttamente sulla superficie, garantisce la visibilità su di essa. Il software MultiTouch di Sin è in grado di riconoscere la posizione, la distanza, la velocità ed accelerazione di un singolo tocco oppure di ogni punto di contatto Tecnologia MultiTouch Hardware MultiTouch L Hardware MultiTouch si divide in due tecnologie principali Sensibile direttamente al tocco (touch screen) Basata sulla video camera (LLP, FTIR, DI) o LLP (Laser Line Plane): quella utilizzata da Sin o FTIR (Frustrated Total Internal Reflection) o DI (Diffused Illumination) Gli schermi sensibili direttamente al tocco si basano su una rete resistiva oppure capacitiva posta sulla superficie di contatto, per cui ciascuna rete rileva la presenza di un singolo tocco dello schermo. Utilizzando una architettura a layer, ovvero soprapponendo più reti sulla superficie di contatto si possono rilevare più punti di contatto sullo schermo contemporaneamente. La cardinalità dei layer quindi è direttamente proporzionale al numero di tocchi rilevati sullo schermo. Attualmente gli elevati costi produttivi di questa tecnologia permettono di avere sul mercato solamente schermi mono o dual touch (vedi palmari, navigatori auto, sportelli bancomat, televisori, display pc, ecc..). La tecnologia basata sulla video camera, al contrario di quella sensibile direttamente al tocco, viene utilizzata quando si ha la necessità di avere cardinalità (1-n) di blob detected e le dimensioni dello schermo superano i pollici. La FTIR (Frustrated Total Internal Reflection) si basa sul concetto che la luce infrarossa viene riflessa all interno della superficie di contatto, che deve essere necessariamente plexiglass (oppure policarbonato) 8

9 perché è più trasparente del vetro al punto che possiede caratteristiche di comportamento simili alla fibra ottica per qualità di trasparenza. (fig. 3 architettura harware FTIR) (fig. 4 campo visivo della telecamera tec.ftir) Il problema fondamentale di questa tecnica consiste nel fatto che i laser infrarossi devono essere posizionati per tutto il perimetro della superficie di contatto per garantire la total reflection in tutte le situazioni. [2] La terza tecnologia, Diffused Illumination può essere utilizzata sia con illuminazione frontale e sia con retro illuminazione. Con la retro illuminazione (fig. 6, fig. 7) la luce infrarossa viene diffusa al di sotto della superficie tattile, una percentuale di essa si riflette nella direzione della telecamera, mentre il restante si propaga al di la della superficie. 9

10 (fig. 5 architettura hardware,rear DI) Quando si tocca la superficie tattile una percentuale maggiore di luce infrarossa viene riflessa nella direzione della telecamera. L illuminazione frontale al contrario si basa sul principio che nell illuminazione ambientale esiste una percentuale di luce infrarossa, quindi la luce diffusa è proprio quella ambientale. (fig. 6 campo visivo della telecamera rear DI) (fig. 7 campo visivo della telecamera front DI) Quando un dito tocca la superficie tattile si crea un ombra in tale posizione (fig. 7), perchè non è più percepibile la luce infrarossa presente nell ambiente nel punto toccato dal dito. [2] 10

11 Software MultiTouch La tecnologia multitouch necessità di tre layer per il suo corretto funzionamento: la TouchLib, il framework TUIO l applicativo finale. Il livello più basso è l applicativo OSC (la TouchLib), ha la funzionalità di interagire direttamente con i driver di sistema. Lo strato superiore è il framework TUIO, che definisce un protocollo di comunicazione, facendo da interprete tra la TouchLib e l applicativo finale Applicativo OSC (TouchLib) La TouchLib è una libreria per creare superfici di interazione multitouch. L applicativo è in grado di tenere traccia di tutti gli eventi che si scatenano sulla superficie di contatto, dovuto al cambiamento di intensità di luce infrarossa in un determinato punto e in un determinato istante. Eventi scatenati sulla superficie di contatto come finger down, finger moved, finger released vengono catturati dalla touchlib, utilizzando la OpenGL digital library, e mandati al nostro applicativo per essere interpretati e manipolati. Quando si lancia l applicazione viene istanziata una DatagramSocket, ovvero una connessione UDP sulla porta 3333 per la spedizione degli eventi multitouch nel protocollo Tuio. Il nostro applicativo rimane in ascolto sulla porta 3333, riceve e interpreta tali messaggi. E possibile calibrare la touchlib per la sensibilità di una specifica telecamera, per far ciò abbiamo a disposizione il config app e il config.xml, l applicativo config è l interfaccia grafica di ciò che è scritto nel file di configurazione xml. [3] Esempio di settaggi utilizzati da Sin: 11

12 (fig. 8 es. settaggi tilizzati da Sin) Background remover: è possibile vedere in figura(finestre dsvlcapture0 e background3) come si può agire sul rumore del background, per dare maggiore definizione alle dita della mano. Rectify è il livello di sensibilità dell applicativo, cattura solo i punti di luminosità maggiori di un certo livello. Nel file di configurazione xml: <?xml version="1.0"?> <blobconfig distancethreshold="250" mindimension="2" maxdimension="250" ghostframes="0" mindisplacementthreshold=" " /> <bbox ulx=" " uly=" " lrx=" " lry=" " /> <!-- definisce il perimetro sensibile della parte sensibile agli eventi multitouch, in base alla risoluzione della telecamera --> <screen> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> 12

13 <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> <point X=" " Y=" " /> </screen> <!--applicazione dei filtri --> <filtergraph> <!-- visualizza quello che intercetta la camera senza l applicazione dei filtri --> <dsvlcapture label="dsvlcapture0" /> <mono label="mono1" /> <backgroundremove label="background3"> <!--setta il valore di threshold del rumore di back ground --> <threshold value="35" /> </backgroundremove> <rectify label="rectify4"> <!--setta il livello di sensibilità dell applicativo --> <level value="20" /> </rectify> </filtergraph> 13

14 Framework TUIO I messaggi (eventi multitouch) inviati sulla porta 3333 dall applicativo OSC devono essere interpretati e manipolati dal nostro applicativo. Il protocollo TUIO ci permette di dialogare con l OSC, permettendo la comunicazione con la nostra applicazione e gli eventi multitouch di più basso livello. Il protocollo TUIO definisce due grandi classi di messaggi: set messages e alive messages. Set messages è usato per comunicare informazioni riguardo lo stato di un oggetto come la posizione, la velocità, l orientamento, l accelerazione, la distanza. Alive messages indica la serie corrente di oggetti presenti sulla superficie, ogni oggetto è identificato utilizzando una lista di session ID. Per ovviare la possibile perdita di pacchetti da parte del protocollo UDP nessun messaggio esplicito di tipo add oppure remove è incluso nel protocollo Tuio. Infatti gli alive messages vengono inviati in maniera sequenziale, il ricevitore esamina la differenza tra di essi. Formato dei messaggi : /tuio/[profilename] set [sessionid parameterlist] /tuio/[profilename] alive [list of active sessionids] //id e parametri dell oggetto aggiornato //lista id oggetti presenti sulla superficie (sequenziale) Profilo del messaggio set : 2D Interactive Surface /tuio/2dobj set s i x y a X Y A m r /tuio/2dcur set s x y X Y m 3D Interactive Surfaces /tuio/3dobj set s i x y z a X Y Z A B C m r /tuio/3dcur set s x y z X Y Z m s = int32, il session ID dell oggetto aggiornato i = int32 class ID, la classe del marcatore (dita,pen tip,marker, ecc) x, y, z = float32, range 0...1, posizione a, b, c = float32, range 0..2PI, angolo di spostamento X, Y,Z = float32, vettore di movimento (velocità di spostamento e direzione) A, B, C = float32, vettore di rotazione (velocità di rotazione e direzione) m = float32, gesto accelerazione r = float32,rotazione accelerazione P = parametro libero [4] 14

15 3. Architettura generale (fig 9architettura generale) L architettura applicativa generale della tesi è composta dai seguenti componenti principali L applicativo OSC (TouchLib): il livello più basso dell architettura, definisce l interfaccia con i driver di sistema per l acquisizione degli eventi multitouch scatenati sulla superficie di contatto. Tuio: definisce il protocollo di comunicazione tra l applicativo OSC e la logica di business 15

16 Il gesture Ingester: interpreta il protocollo Tuio e gestisce gli eventi che verranno poi utilizzati dal gesture control e dalla logica di business GoogleTouch: la logica di business, interagisce con tutti i componenti fondamentali dell architettura Gesture Recognizer: effettua il riconoscimento di una gesture, la logica di business decide le sue modalità di utilizzo. Gesture: utilizza il gesture modeler per la costruzione delle gesture a run-time. Move: gestisce il mouse di sistema per controllare i movimenti dell applicativo di interfaccia COM: Il server COM definito dall applicativo di interfaccia google earth per essere customizzato mediante l utilizzo delle google api Google earth: l applicativo di interfaccia, ha la funzionalità di interagire con l utente mettendo a disposizione della logica di business un interfaccia adattabile alle esigenze di un architettura multitouch. 16

17 4. Gesture Control System 4.1. Concetti fondamentali I messaggi Tuio devono essere processati e interpretati dal nostro applicativo. Il gesture control sta sempre in ascolto sulla pompa dei messaggi Tuio per capire se l utente sta compiendo un determinato movimento delle dita (sta compiendo una gesture), in caso affermativo esegue l operazione legata alla gesture riconosciuta. Il riconoscimento delle gesture è uno degli aspetti più importanti di un progetto multitouch, infatti non è sempre semplice capire in base ai messaggi Tuio la volontà di un utente. Il gesture control system di norma processa una serie di messaggi Tuio prima di prendere una decisione. I messaggi Tuio vengono mappati in un oggetto cursore e inseriti in un Vettore in base al fingerid del messaggio, tali oggetti successivamente vengono inseriti in una lista chiave-valore, la chiave è il fingerid del messaggio Tuio e il valore è l oggetto cursore con tutte le sue informazioni. Il gesture control system, consultando la lista, possiede per ogni fingerid informazioni su tutto il path effettuato dal cursore Le gesture per la navigazione in mappe 3D La gesture rotate Rotazione su un punto (fig.1 una mano fissa il punto e l altra definisce la rotazione) 17

18 Rotazione sul centro dello schermo (fig.2 rotazione simmetrica delle mani) La gesture tilt Cambia la prospettiva di visualizzazione del globo per un angolo compreso tra 0 e 90 gradi. (fig.3) 18

19 La gesture zoom e unzoom Zoom e unzoom su uno specifico punto (fig.4 spostamento parallelo delle dita) Zoom e unzoom sul centro dello schermo (fig.5 zoom) 19

20 (fig.6 unzoom) 4.3. Architettura applicativa 20

21 Gesture ingester Si occupa di gestire i punti acquisiti dalla touchlib nel protocollo Tuio. I punti vengono utilizzati dal gesture control system per il riconoscimento delle gesture. AcceptMessage: /* *OVERVIEW: acquisizione dei messaggi Tuio param date: la data di acquisizione messaggio param message: il messaggio OSC nel protocollo Tuio * */ public void acceptmessage(date date, OSCMessage message) { Object[] args = message.getarguments(); String command = (String)args[0];//command flag ( set, alive ) /* la destinazione ( /tuio/2dobj, /tuio/2dcur, /tuio/3dobj, * /tuio/3dcur ) */ String address = message.getaddress(); if (address.equals(" /tuio/2dobj")) { if (command.equals("set")) { if ((currentframe<lastframe) && (currentframe>0)) return; //acquisizione delle informazioni long s_id = ((Integer)args[1]).longValue(); int f_id = ((Integer)args[2]).intValue(); float xpos = ((Float)args[3]).floatValue(); float ypos = ((Float)args[4]).floatValue(); float angle = ((Float)args[5]).floatValue(); float xspeed = ((Float)args[6]).floatValue(); float yspeed = ((Float)args[7]).floatValue(); float rspeed = ((Float)args[8]).floatValue(); float maccel = ((Float)args[9]).floatValue(); float raccel = ((Float)args[10]).floatValue(); else { if (objectlist.get(s_id) == null) { //mappa il messaggio in un oggetto cursore TuioObject addobject = new TuioObject(s_id,f_id,xpos,ypos, angle,xspeed,yspeed,rspeed,maccel,raccel); //inserisce il messaggio nella lista objectlist.put(s_id,addobject); /*prendo l oggetto da aggiornare identificato dal *sessionid(fingerid) */ TuioObject updateobject = (TuioObject)objectList.get(s_id); //aggiorno l oggetto cursore della lista 21

22 updateobject.update(xpos,ypos,angle,xspeed,yspeed,rspeed, maccel,raccel); La objectlist tiene traccia di tutti gli oggetti presenti sulla superficie di contatto, e il path completo di ogni fingerid. Path fingerid: /* *OVERVIEW: Costruisce un oggetto cursore param: le informazioni del cursore * */ TuioObject(long s_id,int f_id, float xpos,float ypos,float angle,float xspeed,float yspeed,float rspeed,float maccel,float raccel); this.session_id = s_id; this.f_id = f_id; this.xpos = xpos; this.ypos = ypos; this.angle = angle; this.xspeed = xspeed; this.yspeed = yspeed; this. rspeed = rspeed; this.maccel = maccel; this.raccel = raccel; //path del fingerid al momento della costruzione path = new Vector<TuioPoint>(); path.addelement(new TuioPoint(xpos,ypos)); state = TUIO_ADDED; /* *OVERVIEW: aggiorna il cursore param: le informazioni del cursore * */ update (float xpos,float ypos,float angle,float xspeed,float yspeed,float rspeed,float maccel,float raccel); this.xpos = xpos; this.ypos = ypos; this.angle = angle; this.xspeed = xspeed; this.yspeed = yspeed; this. rspeed = rspeed; this.maccel = maccel; this.raccel = raccel; //aggiorna il path del fingerid path.addelement(new TuioPoint(xpos,ypos)); state = TUIO_UPDATED; 22

23 [5] Gesture recognizer Effettua il riconoscimento di una gesture per associarla all esecuzione di funzioni applicative. Interpreta i punti acquisiti tramite il gesture ingester, basandosi su un algoritmo di riconoscimento. Attualmente ci sono due grandi famiglie di algoritmi per il gesture recognizer: Gesture modeler, basato sull OCR Immediate recognizer. Per Google Touch si è optato per l utilizzo del secondo algoritmo, a riconoscimento immediato, in quanto la navigazione 3D richiede caratteristiche come velocità di risposta e fluidità di interattività con il sistema, caratteristiche tipiche dell algoritmo a riconoscimento immediato Il gesture modeler, algoritmo basato sull OCR L algoritmo utilizza vettori ordinati di posizione per il controllo delle gesture. Il gesture ingester ci da le informazioni riguardanti i path di entrambe le mani sulla superficie di contatto, in particolare abbiamo sempre la possibilità di distinguere la mano destra dalla mano sinistra. I cursori della mano destra avranno sempre la variabile x maggiore di quelli della mano sinistra, quando si tocca la superficie di contatto sullo schermo l algoritmo crea a partire da questi due punti iniziali la figura geometrica che definisce la determinata gesture, formalizzandola tramite due vettori (mano sx e dx) ordinati di posizioni. Se l utente si muove sulla superficie di contatto l applicativo OSC manda dei messaggi di update che vengono intercettati dal gesture ingester, dopo un certo numero si update i punti acquisiti vengono confrontati con i vettori ordinati di posizione. Se i punti acquisiti dal gesture ingester si sovrappongono con un certo valore di threshold ai vettori ordinati di posizioni viene eseguita la gesture. La decisione viene presa tramite una media matematica data dall interpolazione dei punti. [6] Implementazione gesture recognizer per l algoritmo basato sull OCR : /* * OVERVIEW: gesture recognizer per l algortimo basato sull OCR v: vettore di punti acquisiti dal gesture ingester hand: vettore di punti creato dal gesture modeler la media dei punti interpolati */ private double check(vector v,arraylist hand){ int start=0; int perc = 0; while(start<v.size()){ 23

24 Tesi di laurea di int x = Utils.ProportionX(((TuioPoint) v.elementat(start)).getx()); int y = Utils.ProportionY(((TuioPoint) v.elementat(start)).gety()); int dx = (int)((tuiopoint) hand.get(start)).getx(); int dy = (int)((tuiopoint) hand.get(start)).gety(); if(getdistance(x,y,dx,dy)<threshold){ perc+=100/v.size(); start++; return perc; /* * OVERVIEW: calcola la distanza tra due punti x: la x del primo punto y: la y del primo punto dx: la x del secondo punto dy: la y del secondo punto la distanza tra i due punti */ private int getdistance(int x,int y,int dx, int dy){ float deltax = x-dx; float deltay = y-dy; return (int)math.sqrt((deltax*deltax)+(deltay*deltay)); La modellazione delle gesture Zoom e UnZoom si basa sull equazione della retta, la distinzione tra le due gesture è definita dalla posizione dei punti all interno dei vettori ordinati. /* * OVERVIEW: classe che gestisce l'equazione della retta dati due * punti point1: primo punto di interpolazione della retta point2: secondo punto di interpolazione della retta * */ public Equation(TuioPoint point1, TuioPoint point2){ //coefficiente angolare float coeff = ((point2.gety()-point1.gety())/ (point2.getx()-point1.getx())); //equazione della retta, y = x + q float x = (coeff*point2.getx()); float y = point2.gety(); float q = -x + y; La modellazione della gesture rotate analogamente si basa sull equazione del cerchio. 24

Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business

Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business Mobile GIS in Eni e Future Architetture di Cloud Computing a Supporto del Business Carlo Michele Garbujo Eni e&p Abstract Oltre un anno fa eni e&p ha rilasciato una web application, denominata infoshop

Dettagli

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Guida rapida all installazione della LIM

Guida rapida all installazione della LIM Superficie in acciaio - LIWB78IR5AC / LIWB78IR5AC-S Superficie in melamina - LIWB78IR / LIWB78IR-S L avagna I nterattiva M ultimediale Ligra srl Via Artigiani 29/31-29020 Vigolzone (PC) Italy Tel.: +39

Dettagli

Didit Interactive Solution

Didit Interactive Solution Didit Interactive Solution Didit Interactive Solution Moonway.it Versione Italiana Data: Settembre 2008 Contenuti Introduzione... 3 Componenti Windows Richiesti... 3 Guidelines Generali di Configurazione...

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

Dettagli

Ausili informatici per disabilità motorie

Ausili informatici per disabilità motorie Ausili informatici per disabilità motorie SOMMARIO 1. INTRODUZIONE 2. AUSILI INFORMATICI COMUNI 3. SOFTWARE DI SUPPORTO AGLI AUSILI 4.AUSILI INFORMATICI AD ALTA TECNOLOGIA Studio di Consulenza Stefano

Dettagli

20 Giugno 2013 Gianni Rosa Gallina giannishub@hotmail.com @giannirg http://giannishub.cloudapp.net/it/

20 Giugno 2013 Gianni Rosa Gallina giannishub@hotmail.com @giannirg http://giannishub.cloudapp.net/it/ 20 Giugno 2013 Microsoft Kinect introduzione Gianni Rosa Gallina giannishub@hotmail.com Twitter: @giannirg Blog: http://giannishub.cloudapp.net/it/ Agenda Cos è Microsoft Kinect? Cosa si può fare con Kinect?

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

Esercitazione sui Design Pattern

Esercitazione sui Design Pattern Esercitazione sui Design Pattern Pattern Creazionali Singleton Permette la creazione di una sola istanza della classe all interno dell applicazione Fornisce un metodo con cui ottenere l istanza Il costruttore

Dettagli

SardegnaFotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE

SardegnaFotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE SardegnaFotoAeree La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE REGIONE AUTONOMA DELLA SARDEGNA [2] Indice 1. Introduzione 2. Navigatore 5 7 8 9 2.1. Strumenti di navigazione 2.2. Ricerca

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

A SCUOLA CON LA LIM 1

A SCUOLA CON LA LIM 1 A SCUOLA CON LA LIM 1 A cura dell'insegnante LUCIA STIRPE Istituto Comprensivo San Cesareo mag 13 19:01 1 Cos'è una LIM? LIM è l'acronimo di Lavagna Interattiva Multimediale. E' un dispositivo elettronico

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

DISPENSA DI GEOMETRIA

DISPENSA DI GEOMETRIA Il software di geometria dinamica Geogebra GeoGebra è un programma matematico che comprende geometria, algebra e analisi. È sviluppato da Markus Hohenwarter presso la Florida Atlantic University per la

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Università della Svizzera italiana

Università della Svizzera italiana Università della Svizzera italiana Il sito dell Università della Svizzera italiana e l accessibilità Vs.1.0 11 / 12 / 2007 TEC-LAB WEB-SERVICE 1. INTRODUZIONE Avere accesso al web, per un utente disabile,

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

A cura dell insegnante Elena Serventi Funzione strumentale TIC (Tecnologie dell Informazione e della Comunicazione) del circolo didattico di Pavone

A cura dell insegnante Elena Serventi Funzione strumentale TIC (Tecnologie dell Informazione e della Comunicazione) del circolo didattico di Pavone A cura dell insegnante Elena Serventi Funzione strumentale TIC (Tecnologie dell Informazione e della Comunicazione) del circolo didattico di Pavone Canavese Febbraio 2011 Cos'è una LIM? LIM è l'acronimo

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Sviluppare applicazioni per Windows Phone

Sviluppare applicazioni per Windows Phone Sviluppare applicazioni per Windows Phone Daniele Bochicchio - Cristian Civera - Marco De Sanctis - Alessio Leoncini - Marco Leoncini ISBN: 9788820347697 http://books.aspitalia.com/windows-phone/ Contenuti

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Podium View TM 2.0 Software di cattura delle immagini Visual Presenter Manuale d uso - Italiano

Podium View TM 2.0 Software di cattura delle immagini Visual Presenter Manuale d uso - Italiano Podium View TM 2.0 Software di cattura delle immagini Visual Presenter Manuale d uso - Italiano Indice 1. Introduzione... 2 2. Requisiti di sistema... 2 3. Installa Podium View... 3 4. Connessione all

Dettagli

WGDESIGNER Manuale Utente

WGDESIGNER Manuale Utente WGDESIGNER Manuale Utente Pagina 1 SOMMARIO 1 Introduzione... 3 1.1 Requisiti hardware e software... 3 2 Configurazione... 3 3 Installazione... 4 3.1 Da Webgate Setup Manager... 4 3.2 Da pacchetto autoestraente...

Dettagli

Josef Vitanostra INFORMATICA PARTHENOPE

Josef Vitanostra INFORMATICA PARTHENOPE Josef Vitanostra INFORMATICA PARTHENOPE Introduzione Java Native Interface o brevemente JNI è un framework di programmazione che ha lo scopo di permettere ad applicazioni Java di interfacciarsi con funzioni

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Sistemi Informativi di relazione - Internet

Sistemi Informativi di relazione - Internet Sistemi Informativi di relazione - Internet Obiettivi. Presentare i concetti base di Internet. Illustrare l evoluzione storica di Internet. Familiarizzare con gli elementi fondamentali di Internet: Il

Dettagli

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE

Dettagli

Lavagna Interattiva Multimediale L.I.M.

Lavagna Interattiva Multimediale L.I.M. Lavagna Interattiva Multimediale L.I.M. La Lavagna Interattiva Multimediale, detta anche L.I.M. o lavagna elettronica, è una superficie interattiva su cui è possibile scrivere, disegnare, allegare immagini,

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 1. Introduzione a Internet e al WWW Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it Crotone, maggio 2005 Windows Ing. Luigi Labonia E-mail luigi.lab@libero.it Sistema Operativo Le funzioni software di base che permettono al computer di funzionare formano il sistema operativo. Esso consente

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

Geoportale web gis. Provincia Regionale di Enna

Geoportale web gis. Provincia Regionale di Enna Geoportale web gis Provincia Regionale di Enna Guida alla consultazione del geoportale della Provincia Regionale di Enna Introduzione Cos è il Geoportale: Il Geoportale della Provincia di Enna ha la finalità

Dettagli

Librerie. Laboratorio di Informatica Antonio Monteleone 28

Librerie. Laboratorio di Informatica Antonio Monteleone 28 Librerie Una libreria è una collezione di funzioni (classi, variabili) usata per sviluppare applicazioni. Le funzioni (classi, variabili) contenute in una libreria si dicono da questa esportate. L'uso

Dettagli

AutoCAD 3D. Lavorare nello spazio 3D

AutoCAD 3D. Lavorare nello spazio 3D AutoCAD 3D Lavorare nello spazio 3D Differenze tra 2D e 3 D La modalità 3D include una direzione in più: la profondità (oltre l altezza e la larghezza) Diversi modi di osservazione Maggiore concentrazione

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato

Dettagli

Visualizzatore Posizionatore e Applicazioni

Visualizzatore Posizionatore e Applicazioni PAG. 1 PAG. 2 VISUALIZZATORE POSIZIONATORE e Applicazioni Aprile 2009 Visualizzatore Posizionatore e Applicazioni VISUALIZZATORE di QUOTE - TELEMACO Il VisualizzatoreTelemaco è costituito da una unità

Dettagli

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software

3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Pagina 29 di 47 3. Gestione di un sistema operativo a interfaccia grafica (elementi di base) 3.1 Software Come abbiamo già detto in precedenza, l informatica si divide in due grandi mondi : l hardware

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante

Dettagli

MODULO 01. Come è fatto un computer

MODULO 01. Come è fatto un computer MODULO 01 Come è fatto un computer MODULO 01 Unità didattica 03 Conosciamo i tipi di computer e le periferiche In questa lezione impareremo: a conoscere le periferiche di input e di output, cioè gli strumenti

Dettagli

Sistema Informativo Alice

Sistema Informativo Alice Sistema Informativo Alice Urbanistica MANUALE UTENTE MODULO PROFESSIONISTI WEB settembre 2007 INDICE 1. INTRODUZIONE...2 1.1. Cos è MPWEB?... 2 1.2. Conoscenze richieste... 2 1.3. Modalità di utilizzo...

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Supporti tecnologici per la creazione musicale Sistemi multimodali per il controllo e la spazializzazione del suono in tempo reale

Supporti tecnologici per la creazione musicale Sistemi multimodali per il controllo e la spazializzazione del suono in tempo reale Supporti tecnologici per la creazione musicale Sistemi multimodali per il controllo e la spazializzazione del suono in tempo reale Mathieu Bosi Matteo Bozzolan Coordinatore M Giovanni Cospito Roma, 31-10-07

Dettagli

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity.

UBIQUITY 6 e Server. Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. UBIQUITY 6 e Server Privato Introduzione Il documento descrive le novità introdotte con la versione 6 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 21/06/2015 Disclaimer

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

DISPOSITIVI DI INPUT

DISPOSITIVI DI INPUT LA TASTIERA (o keyboard) DISPOSITIVI DI INPUT Quando viene premuto un tasto si genera un codice corrispondente alla cifra alfanumerica selezionata che viene inviato alla CPU per essere elaborato. La tastiera

Dettagli

Concetti chiave. Corso di Archivistica e gestione documentale. Breve storia di Windows - 1. Definizione di Sistema Operativo

Concetti chiave. Corso di Archivistica e gestione documentale. Breve storia di Windows - 1. Definizione di Sistema Operativo Corso di Archivistica e gestione documentale Prima Parte - Area Informatica Concetti chiave Lezione 3 Windows XP Definizione di Sistema Operativo È un insieme di programmi e di funzioni in grado di gestire

Dettagli

Sistemi operativi: interfacce

Sistemi operativi: interfacce Sistemi operativi: interfacce I sistemi operativi offrono le risorse della macchina a soggetti diversi: alle applicazioni, tramite chiamate di procedure da inserire nel codice all utente, tramite interfaccia

Dettagli

WebGL. Lezione 18: 15 Maggio 2014

WebGL. Lezione 18: 15 Maggio 2014 WebGL Lezione 18: 15 Maggio 2014 Cronologia: Grafica 3D nell Hardware In principio (giurassico informatico) postazioni specializzate La Silicon Graphics si afferma come produttrice di workstation grafiche

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14

CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 IIS Almerico Da Schio - DISCIPLINA: Informatica e Laboratorio CLASSE PRIMA Istruzione Professionale Servizi Commerciali a.s. 2013/14 COMPETENZE ABILITÀ/ CAPACITÀ CONOSCENZE dei linguaggi L1 Utilizzare

Dettagli

Procedura aperta per la fornitura biennale di ausili (comunicatori a puntatore oculare) per persone affette da sclerosi laterale amiotrofica (SLA).

Procedura aperta per la fornitura biennale di ausili (comunicatori a puntatore oculare) per persone affette da sclerosi laterale amiotrofica (SLA). LOTTO 1: COMUNICATORI VOCALI A CONTROLLO OCULARE, PUNTAMENTO BINOCULARE CON MODALITA DI DETENZIONE DELLA PUPILLA DARK E BRIGHT PUPIL CODICE CND Y214299 Y210915 Z12120111 DESCRIZIONE Ausili per comunicazione

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Rendering & ray tracing. Implementazione e applicazione pratica

Rendering & ray tracing. Implementazione e applicazione pratica Rendering & ray tracing Implementazione e applicazione pratica Che cos e CG(computer graphics)? Quando si parla di CG si intendono immagini, o video creati al computer. CG e una branca dell informatica

Dettagli

FotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE

FotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE FotoAeree La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE REGIONE AUTONOMA DELLA SARDEGNA [2] Indice 1. Introduzione 2. Navigatore 5 7 8 9 2.1. Strumenti di navigazione 2.2. Ricerca 3.

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Ing. Giovanni Ponti DEIS Università della Calabria gponti@deis.unical.it La piattaforma Java mette a disposizione una serie

Dettagli

MODULO 01. MODULO 01 Unità didattica 3. In questa lezione impareremo: Come è fatto un computer. Periferiche e tipi di computer

MODULO 01. MODULO 01 Unità didattica 3. In questa lezione impareremo: Come è fatto un computer. Periferiche e tipi di computer MODULO 01 Come è fatto un computer MODULO 01 Unità didattica 3 Periferiche e tipi di computer In questa lezione impareremo: a conoscere le periferiche di input e di output, cioè gli strumenti che permettono

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

Corso di INFORMATICA GRAFICA. Modulo 2 (CAD) Stefano Cinti Luciani. Introduzione ad AutoCAD

Corso di INFORMATICA GRAFICA. Modulo 2 (CAD) Stefano Cinti Luciani. Introduzione ad AutoCAD Corso di INFORMATICA GRAFICA Modulo 2 (CAD) Stefano Cinti Luciani Introduzione ad AutoCAD Autodesk AutoCAD COS È AUTOCAD? Autodesk AutoCAD è un pacchetto software per la costruzione e modifica di disegni

Dettagli

Guida rapida - versione Web e Tablet

Guida rapida - versione Web e Tablet Guida rapida - versione Web e Tablet Cos è GeoGebra? Un pacchetto completo di software di matematica dinamica Dedicato all apprendimento e all insegnamento a qualsiasi livello scolastico Gestisce interattivamente

Dettagli

[AD.AGIO] ANDROID SDK

[AD.AGIO] ANDROID SDK [AD.AGIO] ANDROID SDK 2013.06 Pag. 1 1. PREMESSA Il presente documento riporta informazioni riservate il cui utilizzo è confidenziale e permesso esclusivamente nell'ambito del rapporto di fornitura in

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Presentation Draw. Guida dell utilizzatore

Presentation Draw. Guida dell utilizzatore Presentation Draw I Guida dell utilizzatore Conservare l intera documentazione dell utente a portata di mano per riferimenti futuri. Il termine puntatore in questo manuale si riferisce al puntatore interattivo

Dettagli

Tutorial 3DRoom. 3DRoom

Tutorial 3DRoom. 3DRoom Il presente paragrafo tratta il rilievo di interni ed esterni eseguito con. L utilizzo del software è molto semplice ed immediato. Dopo aver fatto uno schizzo del vano si passa all inserimento delle diagonali

Dettagli

Studio di Tecnologie ed Architetture DVB e Sviluppo di un Dimostratore di una Piattaforma di Teleassistenza

Studio di Tecnologie ed Architetture DVB e Sviluppo di un Dimostratore di una Piattaforma di Teleassistenza Studio di Tecnologie ed Architetture DVB e Sviluppo di un Dimostratore di una Piattaforma di Teleassistenza Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica (LS) Tesi in Progettazione del

Dettagli

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer

Computer Graphics. La disciplina fornisce metodi per creare elaborare memorizzare visualizzare. immagini di oggetti o scene mediante un computer Computer Graphics La disciplina fornisce metodi per creare elaborare memorizzare visualizzare immagini di oggetti o scene mediante un computer Image Processing La disciplina fornisce metodi per acquisire

Dettagli

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Relazione finale su progetto interno Realizzazione di un applicazione per la visualizzazione

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

istruzioni per l uso 1. Che cos è Google Earth

istruzioni per l uso 1. Che cos è Google Earth istruzioni per l uso 1. Che cos è Google Earth Google Earth è un software che permette una navigazione virtuale della Terra. Il programma deve essere installato sul proprio computer e, per poterlo utilizzare

Dettagli

Universal Gateway for ALL

Universal Gateway for ALL Laboratorio: Costruiamolo insieme. Design for all, artigiani digitali e disabilità: esperienze di progettazione partecipata UGA Universal Gateway for ALL Usare piattaforme embeddedper accedere a dispositivi

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Periferiche di I/O. Architettura di Von Neumann. 02 novembre 2006 BUS. Schema generale di tipo funzionale del calcolatore.

Periferiche di I/O. Architettura di Von Neumann. 02 novembre 2006 BUS. Schema generale di tipo funzionale del calcolatore. Periferiche di I/O 02 novembre 2006 Architettura di Von Neumann Schema generale di tipo funzionale del calcolatore Unità Centrale Memoria Centrale Interfacce delle Periferiche BUS DATI BUS BUS CONTROLLO

Dettagli

Reingegnerizzazione di un Content Management System verso l accessibilità secondo la normativa italiana

Reingegnerizzazione di un Content Management System verso l accessibilità secondo la normativa italiana Università degli Studi di Bologna Sede di Cesena FACOLTÀ À DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Scienze dell Informazione Reingegnerizzazione di un Content Management System verso

Dettagli

What is LabVIEW???? Pietro Giannone. Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi. Università degli Studi di Catania

What is LabVIEW???? Pietro Giannone. Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi. Università degli Studi di Catania Università degli Studi di Catania Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi What is LabVIEW???? Pietro Giannone University of Catania Dipartimento di Ingegneria Elettrica Elettronica

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

Dettagli

Obiettivo Generare un file.notebook integrato con testo, collegamenti, video, suoni e immagini ed esportarlo in diversi formati: PDF, HTML e JPG.

Obiettivo Generare un file.notebook integrato con testo, collegamenti, video, suoni e immagini ed esportarlo in diversi formati: PDF, HTML e JPG. SMART Board Prerequisiti PC Pentium III - 128Mb di Ram- 110 Mb di spazio su HD - casse acustiche - software Notebook e driver di SMART Board Videoproiettore - LIM Installazione software Smart Board su

Dettagli

UNIVERSITÀ DEGLI STUDI DI SIENA

UNIVERSITÀ DEGLI STUDI DI SIENA UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica, orientamento Robotica ed Automazione Tesi di Laurea Interazione Visuo-Aptica con Oggetti Deformabili

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System

Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System 1. Introduzione KML file... 1 2. Creazione e condivisione dei file KML usando Google Earth... 1

Dettagli

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it ANDROID Domenico Talia Università della Calabria talia@dimes.unical.it Sistemi Operativi per Mobile! I sistemi operativi per sistemi mobili seguono i principi dei SO classici ma devono gestire risorse

Dettagli