Programmazione J2ME. Lezione 10. Mobile3D (incompleta) Di Blasi Gianpiero - D.M.I. - Università di Catania

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione J2ME. Lezione 10. Mobile3D (incompleta) Di Blasi Gianpiero - D.M.I. - Università di Catania"

Transcript

1 Di Blasi Gianpiero - D.M.I. - Università di Catania Programmazione J2ME Lezione 10 Mobile3D (incompleta)

2 Cosa impareremo oggi? L'API Mobile3D Come scoprire la presenza dell'api Mobile3D Caratteristiche generali e funzionamento del package javax.microedition.m3g

3 Introduzione (1) Questa lezione presenta L'API M3G (Mobile3D Graphics) per dispositivi J2ME Tale API (JSR 184) è un package opzionale per la creazione di ambienti tridimensionali La libreria presenta una serie di classi ed un modello di programmazione molto simile all'api Java3D Sfortunatamente però le due API non sono compatibili

4 Introduzione (2) In ogni caso la conoscenza di Java3D semplifica notevolmente lo studio di Mobile3D (ovviamente vale anche il viceversa) Non tutti i dispositivi supportano Mobile3D, ma la maggior parte degli emulatori sono già abilitati Durante questa lezione darò per scontata la conoscenza dei principi fondamentali della Computer Graphics

5 Introduzione (3) L'API supporta sia la programmazione grafica di alto livello sia quella di basso livello Nell'implementazione di alto livello (detta retained mode), lo sviluppatore lavora con un modello scene graph ed il rendering dell'ambiente 3D è automatico e tutto a carico del motore Mobile3D Nell'implementazione di basso livello (immediate mode) lo sviluppatore deve invece disegnare manualmente tutto il mondo 3D (compresi i problemi di prospettiva, di luce, di vista, ecc.)

6 Introduzione (4) Noi ci occuperemo principalmente del retained mode poiché è più semplice e simile a Java3D, daremo solo cenni invece sull'immediate mode Il sistema a basso livello si comporta esattamente come le librerie OpenGL ES OpenGL ES (OpenGL for Embedded Systems) è un'api di basso livello sottoinsieme di OpenGL specifica per i dispositivi embedded Essa fornisce un'interfaccia di basso livello tra l'applicazione ed il motore 3D del dispositivo

7 Altre API simili Mobile Media API (JSR 135): è un'api di alto livello per il controllo di diversi tipi di media (principalmente audio e video); non implementa grafica 3D; JSR 184 è stato definito per fornire le funzionalità base per la grafica 3D Java Bindings for OpenGL ES (JSR 239): un wrapper J2ME per OpenGL ES; è l'equivalente di JOGL per OpenGL e Java

8 Il package javax.microedition.m3g (1) L'API Mobile3D è definita nel package javax.microedition.m3g Tale package contiene tutte le classi necessarie per la creazione di mondi 3D La libreria definisce inoltre una struttura scene graph ed un formato di file corrispondente per gestire e distribuire contenuti 3D in modo efficiente

9 Il package javax.microedition.m3g (2) Graphics3D il contesto grafico 3D Object3D una classe astratta per gli oggetti contenuti nel mondo questo include il mondo stesso, i nodi dello scene graph, le animazioni, le texture, ecc. Transformable una classe astratta per Node e Texture2D dove sono definiti i metodi comuni per la manipolazione dei nodi e per le trasformazioni delle texture

10 Il package javax.microedition.m3g (3) Node una classe astratta per tutti i nodi dello scene graph ci sono cinque differenti tipi di nodi: Camera - definisce la posizione dell'osservatore e la proiezione da 3D a 2D Mesh - rappresenta un oggetto 3D definito come una superficie poligonale immutabile Sprite3D - rappresenta una immagine 2D con una posizione 3D Light - definisce posizione, direzione, colore ed altri attributi di una sorgente luminosa Group - un contenitore di altri nodi

11 Il package javax.microedition.m3g (4) World un nodo Group radice dello scene graph MorphingMesh un nodo dello scene graph rappresentante un oggetto 3D definito come una superficie poligonale modificabile tramite un vertex-morphing SkinnedMesh un nodo dello scene graph rappresentante un oggetto 3D definito come una superficie poligonale animabile

12 Il package javax.microedition.m3g (5) Appearance un insieme di componenti che definiscono l'aspetto di una Mesh o di uno Spring3D Material un componente di Appearance che incapsula gli attributi per il calcolo del comportamento della luce sugli oggetti altri attributi per la luce sono definiti in Light, PolygonMode e VertexBuffer

13 Il package javax.microedition.m3g (6) CompositingMode un componente di Appearance che incapsula gli attributi della composizione del colore per-pixel PolygonMode un componente di Appearance che incapsula gli attributi per i poligoni (back/front face culling, calcolo delle luci, correzione prospettica, shading, ecc.) Fog un componente di Appearance che incapsula gli attributi della nebbia

14 Il package javax.microedition.m3g (7) Texture2D un componente di Appearance che incapsula una texture e gli attributi su come applicarla ad una mesh (wrapping, filtering, blending, trasformazione delle coordinate, ecc.) Background definisce come cancellare il mondo, può essere pensato come lo sfondo di una scena Loader carica e deserializza i nodi di uno scene graph

15 Il package javax.microedition.m3g (8) AnimationController controlla la posizione, velocità e peso di una animazione; per esempio può essere usato per controllare il movimento di una luce KeyframeSequence incapsula i dati dell'animazione come una sequenza di key-frame AnimationTrack associa un KeyframeSequence con un AnimationController

16 Il package javax.microedition.m3g (9) Image2D un'immagine utilizzabile come texture, sfondo o sprite ci sono due tipi di immagini: mutable (aggiornabili in qualsiasi momento) immutable (non aggiornabili) RayIntersection conserva il riferimento ad una Mesh o uno Sprite3D intersecato e le informazioni sul punto di intersezione Transform una matrice 4x4 rappresentante una trasformazione 3D

17 Il package javax.microedition.m3g (10) TriangleStripArray definisce un array di triangoli collegati a strip in una strip, i primi tre vertici definiscono il primo triangolo, ogni ogni altro vertice definisce uno nuovo triangolo usando i due precedenti VertexArray un array di vettori interi rappresentante posizione, normali, colori e coordinate delle texture di ogni vertice

18 Il package javax.microedition.m3g (11) VertexBuffer conserva i riferimenti ai VertexArray per un insieme di vertici IndexBuffer definisce come connettere i vertici per formare una geometria

19 Scoprire la presenza del package Mobile3D (1) Poiché Mobile3D è un package opzionale, tale API potrebbe essere non disponibile su qualche dispositivo quindi è necessario un sistema per ottenere tale informazione Sfortunatamente non esiste un sistema universale per fare ciò ed ogni profilo MIDP ed ogni piattaforma potrebbero avere un sistema proprietario per tale scopo

20 Scoprire la presenza del package Mobile3D (2) Un'alternativa per scoprire la presenta dell'api Mobile3D è chiedere al dispositivo la versione dell'api stessa Infatti si può chiamare il metodo System.getProperty( microedition.m3g.version ): restituisce la versione dell'api ( 1.1 o 1.0 ) se l'api è presente, null altrimenti

21 Scoprire la presenza del package Mobile3D (3) Esempio (provare sia su MpowerPlayer sia su WTK) PackageDiscovery

22 La classe Graphics3D (1) La classe Graphics3D è il cuore di tutta l'api È il contesto grafico 3D che si occupa del rendering della scena È un oggetto singleton (ne può esistere una sola istanza) Tutto il rendering è fatto tramite i metodi render(...) L'API non contiene altro sistema per il rendering di scene 3D

23 La classe Graphics3D (2) Ci sono quattro diversi metodi render(...) operanti a diversi livelli di granularità Il primo metodo renderizza un intero World ed in tal caso si dice che l'api opera in retained mode Il secondo metodo renderizza nodi dello scene graph, mentre il terzo ed il quarto metodo renderizzano semplici mesh ed in questi tre casi si dice che l'api opera in immediate mode

24 La classe Graphics3D (3) La classe Graphics3D fa riferimento ad una camera corrente ed ad un array di luci correnti Queste sono usate solo dai metodi dell'immediate mode Il retained mode usa la camera e le luci specificate nel World, ignorando totalmente camera e luci del Graphics3D

25 La classe Graphics3D (4) Prima del rendering l'applicazione deve registrare un target al Graphics3D usando il metodo void bindtarget(object target): registra un Graphics o una Image2D modificabile come target di questo Graphics3D Quando il rendering è completato l'applicazione deve rilasciare il target con il metodo void releasetarget(): rilascia il target

26 La classe Graphics3D (5) Metodi utili static Graphics3D getinstance(): restituisce l'istanza singleton di Graphics3D Object gettarget(): restituisce il target attuale void clear(background background): cancella la scena tramite un background void setcamera(camera camera, Transform transform): imposta la camera corrente Camera getcamera(transform transform): restituisce la camera corrente (continua...)

27 La classe Graphics3D (6) Metodi utili (segue) int addlight(light light, Transform transform): aggiunge una luce alla scena void setlight(int index, Light light, Transform transform): imposta una luce nell'array delle luci correnti Light getlight(int index, Transform transform): restituisce una luce nell'array delle luci correnti int getlightcount(): restituisce il numero di luci correnti void resetlights(): cancella l'array delle luci correnti

28 La classe Graphics3D (7) Esempio (No su MPowerPlayer) Graphics3DSample

29 La classe Loader (1) Nel precedente esempio è stata introdotta anche la classe Loader Il suo funzionamento è molto semplice: scarica e deserializza file in formato M3G è capace di deserializzare istanze di qualsiasi classe derivata da Object3D (World, Group, Camera, Light, Material, Appearance, Texture2D, AnimationTrack, KeyframeSequence, ecc.) qualsiasi altro oggetto non può essere deserializzato

30 La classe Loader (2) La classe Loader è anche capace di caricare immagini in formato PNG In tal caso l'oggetto restituito è un'istanza non modificabile di Image2D il cui pixel format corrisponde al color type del PNG Alcune implementazioni Mobile3D potrebbero ovviamente supportare anche altri formati oltre al PNG

31 La classe Loader (3) Metodi utili: static Object3D[] load(byte[] data, int offset): deserializza istanze di Object3D da un array di byte iniziando da un dato offset static Object3D[] load(string name): carica e deserializza istanze di Object3D da una risorsa (interna o esterna alla midlet)

32 La classe World (1) Nel precedente esempio è stata introdotta anche la classe World Anche il funzionamento di questa classe è molto semplice World è uno speciale Group (che vedremo a breve) radice dello scene graph Uno scene graph è costituito da una gerarchia di nodi Tutti i nodi sono connessi tra loro ed hanno una radice comune: un oggetto World

33 La classe World (2)

34 La classe World (3) Costruttore World() Metodi utili (oltre a quelli di Group) Camera getactivecamera(): restituisce la camera attiva void setactivecamera(camera camera): imposta la camera attiva Background getbackground(): restituisce lo sfondo si questo mondo void setbackground(background background): imposta lo sfondo di questo mondo

35 La classe Background (1) Definisce uno sfondo per il mondo: nel retained mode viene utilizzato l'oggetto Background associato al World nell'immediate mode bisogna specificare un apposito oggetto Background da utilizzare nel metodo clear(...) di Graphics3D La cancellazione dello sfondo riguarda sia il color buffer che il depth buffer (z-buffer) Il color buffer è cancellato usando il Background, il depth buffer è cancellato impostando tutto il buffer al massimo valore possibile

36 La classe Background (2) Il Background può essere definito da un colore, da una Image2D o da entrambi: se è presente solo il colore lo sfondo sarà colorato di quel colore se è presente solo l'immagine lo sfondo sarà colorato con quell'immagine se sono presenti entrambi lo sfondo sarà colorato prima con il colore e poi con l'immagine

37 La classe Background (3) Costruttore Background() Metodi utili void setcolor(int ARGB): imposta il colore di sfondo void setimage(image2d image): imposta l'immagine di sfondo void setcolorclearenable(boolean enable): imposta la cancellazione del color buffer void setdepthclearenable(boolean enable): imposta la cancellazione del depth buffer

38 La classe Background (4) Esempi (No su MPowerPlayer) BackgroundSample_a1 BackgroundSample_a2

39 La classe Camera (1) Definisce la posizione dell'osservatore nella scena e la sua proiezione dal 3D al 2D La camera è sempre orientata verso l'asse Z negativo e può essere posizionata ed orientata come qualsiasi altro nodo attraverso le trasformazioni (che vedremo a breve) Costruttore Camera() I metodi più importanti della classe Camera si trovano nella classe Transformable e servono per posizionarla nello spazio

40 La classe Camera (2) Esempio (No su MPowerPlayer) CameraSample

41 La classe Object3D Con gli esempi finora presentati abbiamo avuto modo di iniziare a conoscere alcune classi foglie dell'api e capire come funziona il retained mode Adesso bisogna andare a studiare le classi root La classe Object3D è una classe astratta base di tutti gli oggetti che possono essere parte di un mondo 3D Contiene ovviamente i metodi comuni a tutte le classi

42 La classe Object3D animazione (1) Una delle caratteristiche principali di questa classe è la possibilità di essere animata Le animazioni sono applicate all'oggetto ed a tutti i suoi discendenti nello scene graph Per fare ciò bisogna utilizzare il metodo int animate(int time): aggiorna tutte le proprietà animabili di questo oggetto e di tutti i suoi discendenti nello scene graph

43 La classe Object3D animazione (2)

44 La classe Object3D l'id (1) Ogni Object3D può avere assegnato un ID, attraverso il metodo void setuserid(int userid): imposta l'id dell'oggetto Ovviamente esiste il corrispondente int getuserid(): restituisce l'id dell'oggetto Gli ID possono essere usati ad esempio per recuperare un oggetto da una scena ottenuta da stream

45 La classe Object3D l'id (2) Per recuperare un oggetto si utilizza il metodo Object3D find(int userid): recupera un oggetto con un dato userid e raggiungibile da questo oggetto Il metodo find(...) cerca in tutti gli oggetti raggiungibili da questo oggetto Se ci sono oggetti con lo stesso ID ne verrà restituito uno qualsiasi (non c'è modo di decidere quale)

46 La classe Object3D l'id (3)

47 La classe Object3D dati utente Infine la classe Object3D ha un campo riservato per i dati dell'utente Questo campo può contenere qualsiasi Object ed il suo utilizzo dipende dall'applicazione che si sta sviluppando I metodi per impostare e recuperare tale campo sono void setuserobject(object userobject): imposta un dato dell'utente Object getuserobject(): recupera un dato dell'utente

48 La classe Object3D Altri metodi utili void addanimationtrack(animationtrack animationtrack), void removeanimationtrack(animationtrack animationtrack): aggiunge/rimuove un gestore di animazioni AnimationTrack getanimationtrack(int index): restituisce il gestore di animazioni alla posizione index int getanimationtrackcount(): restituisce il numero di gestori delle animazioni associati a questo Object3D Object3D duplicate(): duplica questo Object3D int getreferences(object3d[] references): restituisce numero ed oggetti direttamente referenziati da questo Object3D

49 La classe Transformable (1) La classe Transformable è una classe astratta per Node e Texture2D e definisce i metodi comuni per la manipolazione delle trasformazioni di nodi e texture Le trasformazioni di nodi e texture consistono di quattro componenti: traslazione (T), rotazione (R), scala (S) ed una generica matrice 4x4 (M) Un vettore omogeneo p = (x, y, z, w), rappresentante un vertice (Node) o una coordinata di texture (Texture2D), è trasformato nel vettore p' = (x', y', z', w') = T R S M p

50 La classe Transformable (2) Metodi utili void getcompositetransform(transform transform): restituisce la matrice composita C = T R S M void gettranslation(float[] xyz): restituisce la componente di traslazione void getorientation(float[] angleaxis): restituisce la componente di rotazione void getscale(float[] xyz): restituisce la componente di scala void gettransform(transform transform): restituisce la matrice generica 4x4 M (continua...)

51 La classe Transformable (3) Metodi utili (segue) void settranslation(float tx, float ty, float tz): imposta la componente di traslazione void translate(float tx, float ty, float tz): aggiunge una traslazione alla componente di traslazione void setorientation(float angle, float ax, float ay, float az): imposta la componente di rotazione void settransform(transform transform): imposta la matrice generica 4x4 M (continua...)

52 La classe Transformable (4) Metodi utili (segue) void postrotate(float angle, float ax, float ay, float az): moltiplica a destra la componente di rotazione per la rotazione data void prerotate(float angle, float ax, float ay, float az): moltiplica a sinistra la componente di rotazione per la rotazione data void setscale(float sx, float sy, float sz): imposta la componente di scala void scale(float sx, float sy, float sz): moltiplica la componente di scala per la scala data

53 La classe Transform (1) Transform (classe di appoggio di Transformable) è una generica matrice 4x4 rappresentante una qualsiasi trasformazione 3D Anche se Transform permette di definire qualsiasi matrice 4x4 conviene usare soltanto matrici invertibili (non singolari) Questo poiché l'utilizzo di una matrice non invertibile potrebbe portare al verificarsi di eccezioni a run-time

54 La classe Transform (2) Costruttori: Transform() Transform(Transform transform) Metodi utili void get(float[] matrix): restituisce il contenuto di questa trasformazione in un array di 16 elementi void set(float[] matrix), void set(transform transform): imposta questa trasformazione (continua...)

55 La classe Transform (3) Metodi utili (segue) void setidentity(): imposta questa trasformazione all'identità void invert(): inverte questa matrice, se possibile void transpose(): calcola la trasposta di questa matrice void transform(float[] vectors): moltiplica il vettore 4D dato per questa trasformazione void transform(vertexarray in, float[] out, boolean W): moltiplica i vertici di in per questa matrice e conserva il risultato nel vettore out, W vale true per impostare la componente w a 1, false per impostarla a 0 (continua...)

56 La classe Transform (4) Metodi utili (segue) void postmultiply(transform transform): moltiplica a destra questa trasformazione per la trasformazione data void postrotate(float angle, float ax, float ay, float az), void postrotatequat(float qx, float qy, float qz, float qw): moltiplica a destra questa trasformazione per la rotazione data void postscale(float sx, float sy, float sz): moltiplica a destra questa trasformazione per la scala data void posttranslate(float tx, float ty, float tz): moltiplica a destra questa trasformazione per la traslazione data

57 La classe Node La classe astratta per tutti i nodi dello scene graph Ogni nodo definisce un sistema di coordinate locali che può essere trasformato relativamente al sistema di coordinate del nodo padre Tale trasformazione consiste sempre delle quattro componenti T, R, S ed M

58 La classe Node allineamento (1) Un nodo può essere allineato rispetto ad un nodo di riferimento Questo significa che il nodo allineato è (su richiesta) automaticamente orientato in modo tale che il suo sistema di coordinate corrisponda al sistema di coordinate del nodo di riferimento Un caso classico di utilizzo è per la creazione delle billboard, ovvero oggetti che guardano sempre verso la camera (maggiori dettagli nel corso di Computer Graphics)

59 La classe Node allineamento (2) Quando un nodo è allineato la sua componente di rotazione originale R è sovrascritta con una rotazione di allineamento A Le altre componenti sono lasciate inalterate La trasformazione dal sistema di coordinate locali di un nodo allineato al sistema di coordinate del suo nodo padre è p' = T A S M p Quando necessario l'applicazione deve esplicitamente invocare l'allineamento su un nodo

60 La classe Node allineamento (3) Per allineare un nodo bisogna chiamare il metodo void align(node reference): allinea il nodo al nodo reference void setalignment(node zref, int ztarget, Node yref, int ytarget): allinea il nodo ai nodi di riferimento ztarget ed ytarget posso assumere i valori: NONE nessun allineamento ORIGIN allinea l'asse in modo tale che punti all'origine del sistema di coordinate del nodo di riferimento X_AXIS, Y_AXIS, Z_AXIS allinea l'asse con l'asse x, y, o z del sistema di coordinate del nodo di riferimento

61 La classe Node allineamento (4) Altri metodi utili per l'allineamento sono Node getalignmentreference(int axis): restituisce il nodo di riferimento per l'asse axis int getalignmenttarget(int axis): restituisce l'asse target per l'asse axis

62 La classe Node proprietà ereditate (1) Oltre alle trasformazioni ci sono altre tre proprietà i cui valori sono influenzati dai nodi padre Queste proprietà sono: il fattore alpha, il flag di rendering ed il flag di picking Il fattore alpha è un valore nel range [0, 1] che definisce la trasparenza di un oggetto L'effettiva fattore alpha di un nodo è il prodotto del suo fattore alpha e dell'effettivo fattore alpha del nodo padre (definizione ricorsiva)

63 La classe Node proprietà ereditate (2) Il flag di rendering (picking) permette a gruppi di nodi di essere invisibili al rendering (picking) ovvero non sono visualizzati ( acchiappati ) L'effettivo flag di un nodo è la AND logica del suo flag e dell'effettivo flag del nodo padre (definizione ricorsiva) Ciò vuol dire che rendere un nodo visibile o acchiappabile non avrà l'effetto desiderato se qualche nodo superiore non lo è

64 La classe Node proprietà ereditate (3) Per recuperare ed impostare le proprietà si usano i metodi float getalphafactor(): recupera il fattore alpha void setalphafactor(float alphafactor): imposta il fattore alpha boolean isrenderingenabled(): recupera il flag di rendering void setrenderingenable(boolean enable): imposta il flag di rendering boolean ispickingenabled(): recupera il flag di picking void setpickingenable(boolean enable): imposta il flag di picking

65 La classe Node scope (1) Lo scope di un Node è un bitmask integer che permette ai nodi di uno scene graph di formare gruppi logici indipendenti dalla gerarchia fisica dello scene graph In altre parole nodi appartenenti a Group diversi possono appartenere allo stesso scope e viceversa Due nodi A e B appartengono allo stesso scope se scopea & scopeb!= 0

66 La classe Node scope (2) Lo scope serve principalmente in tre casi: visibilità solo gli oggetti che appartengono allo stesso scopo della camera sono renderizzati; questo da un modo aggiuntivo al flag di rendering per controllare l'insieme di oggetti visibili illuminazione una sorgente di luce ha effetto solo sugli oggetti che appartengono al suo scope (utile per migliorare le prestazioni e per poter creare scene complesse) picking solo gli oggetti che appartengono allo stesso scopo dell'oggetto acchiappante possono essere acchiappati

67 La classe Node scope (3) Lo scope di default è -1 (in binario una stringa del tipo ) Ciò implica che di default tutti i nodi appartengono a tutti gli scope Quindi di default tutti gli oggetti sono visibili da tutte le camere ed illuminati da tutte le sorgenti di luce Metodi per impostare e recuperare lo scope int getscope(), void setscope(int scope): recupera ed imposta lo scope di un nodo

68 La classe Group (1) Un Group è un nodo dello scene graph capace di conservare una lista (non ordinata) di altri nodi figli Può essere visto come un semplice raggruppatore logico (non fisico) di nodi La relazione padre-figlio è bidirezionale: se il nodo A è figlio del nodo B allora B è l'unico e solo genitore di A

69 La classe Group (2) Costruttore: Group() Metodi utili: void addchild(node child): aggiunge un nodo al gruppo void removechild(node child): rimuove un nodo dal gruppo Node getchild(int index): restituisce il nodo di posto index int getchildcount(): restituisce il numero di figli

70 Da Scrivere Descrizione completa ed esempi per le altre classi

OpenSceneGraph & OSG4Web

OpenSceneGraph & OSG4Web OpenSceneGraph & OSG4Web Parte 1 OpenSceneGraph Introduzione alla creazione di una Applicazione 3D e OpenGL Basi di OpenSceneGraph Demo e prove pratiche Parte 2 Navigazione e Virtual Worlds su larga scala

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Di Blasi Gianpiero - D.M.I. - Università di Catania. Lezione 6. Luci

Di Blasi Gianpiero - D.M.I. - Università di Catania. Lezione 6. Luci Di Blasi Gianpiero - D.M.I. - Università di Catania Java3D Lezione 6 Luci Cosa impareremo oggi? Il modello di illuminazione di Java3D Come creare luci Come fare interagire gli oggetti visuali con le luci

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Le ombre in OpenGl Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Punto di partenza In OpenGl le luci non proiettano ombre 2 Perché si introducono

Dettagli

SOMMARIO. Introduzione - OpenInventor. Introduzione - OpenInventor. OpenInventor

SOMMARIO. Introduzione - OpenInventor. Introduzione - OpenInventor. OpenInventor OpenInventor SOMMARIO (riferimento: J. Wernecke, The Inventor Mentor Ed.: Addison-Wesley) Scene database e i scene graph Nodi Coin3D (riferimento: www.coin3d.org) Esempi Introduzione - OpenInventor OpenInventor

Dettagli

Grafica 3D Interattiva

Grafica 3D Interattiva Informatica Grafica ][ Marco Gribaudo marcog@di.unito.it Grafica 3D Interattiva sono una libreria di funzioni a basso livello per facilitare la scrittura di videogiochi e di applicazioni multimediali.

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Modelli per i materiali

Modelli per i materiali Texture mapping 1 Modelli per i materiali Il realismo visivo può essere ottenuto mediante i modelli di illuminazione e dei materiali Per modellare i materiali si possono utilizzare delle immagini dette

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping)

1.1 Modello di un Processo di Rendering. Gestore delle Geometrie (Ricostruzione delle Geoemtrie e Clipping) Capitolo 1 Esercizi sulla Pipeline di Rendering 1.1 Modello di un Processo di Rendering Componenti dell Architettura di Rendering: Processore Bus di Comunicazione Scheda Grafica Moduli della Pipeline di

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Programmazione J2ME. Lezione 9. Il Bluetooth. Di Blasi Gianpiero - D.M.I. - Università di Catania

Programmazione J2ME. Lezione 9. Il Bluetooth. Di Blasi Gianpiero - D.M.I. - Università di Catania Di Blasi Gianpiero - D.M.I. - Università di Catania Programmazione J2ME Lezione 9 Il Bluetooth Cosa impareremo oggi? L'API JSR-82 per la comunicazione tramite tecnologia Bluetooth Utilizzo dei protocolli

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D) ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI () Una immagine (digitale) permette di percepire solo una rappresentazione 2D del mondo La visione 3D si pone lo scopo di percepire il mondo per come è in 3 dimensioni

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

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Trasformazioni nello spazio Grafica 3d

Trasformazioni nello spazio Grafica 3d Trasformazioni nello spazio Grafica 3d Giancarlo RINALDO rinaldo@dipmat.unime.it Dipartimento di Matematica Università di Messina Trasformazioni nello spaziografica 3d p. 1 Introduzione In questa lezione

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

Demo. La palette allinea. La palette Anteprima conversione trasparenza. Adobe Illustrator CS2

Demo. La palette allinea. La palette Anteprima conversione trasparenza. Adobe Illustrator CS2 Le Palette (parte prima) Come abbiamo accennato le Palette permettono di controllare e modificare il vostro lavoro. Le potete spostare e nascondere come spiegato nella prima lezione. Cominciamo a vedere

Dettagli

VIRTUAL REALITY TOOLBOX

VIRTUAL REALITY TOOLBOX VIRTUAL REALITY TOOLBOX Il Virtual Reality Toolbox permette di visualizzare e di interagire con le simulazioni di sistemi dinamici in un ambiente di realtà virtuale a 3 dimensioni. Il toolbox collega MATLAB

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Premessa. GUI: organizzazione generale

Premessa. GUI: organizzazione generale Premessa Luxology Modo è un software di grafica 3D di ultima generazione. Non è un software con una vocazione specifica, ma piuttosto un sistema estremamente flessibile che comprende modellazione solida

Dettagli

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base Texture mapping Davide Gadia, Daniele Marini Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Livello di approfondimento della lezione

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

Trasformazioni 2D. Grande differenza rispetto alla grafica raster!

Trasformazioni 2D. Grande differenza rispetto alla grafica raster! Trasformazioni 2D Il grande vantaggio della grafica vettoriale è che le immagini vettoriali descrivono entità matematiche È immediato manipolare matematicamente tali entità In quasi tutte le manipolazioni

Dettagli

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica.

La Pipeline Grafica. Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione. La Pipeline Grafica. La Pipeline Grafica Vediamo come avviene il rendering, ovvero la visualizzazione di oggetti. Introduzione La Pipeline Grafica Spazio vista Spazio 3D-screen Shading Rasterizzazione Rimozione delle facce

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

3 Lavorare con i livelli

3 Lavorare con i livelli INTRODUZIONE 3 Lavorare con i livelli I livelli costituiscono un elemento essenziale nella programmazione di un filmato FLASH. Mentre i fotogrammi individuano la sequenzialità, i livelli definiscono la

Dettagli

Time Line: File=>Nuova Chiave Scorciatoia: Nessuna

Time Line: File=>Nuova Chiave Scorciatoia: Nessuna 356 Animare il Progetto del Logo 3D Si aprirà il dialogo della Sequenza. Cambiare la sequenza per farla iniziare al Fotogramma 91 e terminare al Fotogramma 160. Clic su OK. Passo 6. Rotazione Sequenza

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Introduzione a Java3D. Di Blasi Gianpiero - D.M.I. - Università di Catania

Introduzione a Java3D. Di Blasi Gianpiero - D.M.I. - Università di Catania Introduzione a Java3D Di Blasi Gianpiero - D.M.I. - Università di Catania L'evoluzione Hardware Le schede 3D producono oggi grafica interattiva paragonabile agli effetti speciali cinematografici Java è

Dettagli

Bookenberg non è un softwere ma una piattaforma online, quindi:

Bookenberg non è un softwere ma una piattaforma online, quindi: Tutorial le basi Bookenberg non è un softwere ma una piattaforma online, quindi: - non devi installare nulla sul tuo computer - vai sul sito, ti registri e sei operativo Nella sezione LIBRO usa l icona

Dettagli

Supermarket Progetto di Programmazione Febbraio 2010

Supermarket Progetto di Programmazione Febbraio 2010 Supermarket Progetto di Programmazione Febbraio 2010 1 Supermercato Dovete realizzare un insieme di classi e interfacce che riguardano la gestione di un supermercato. nella Sezione 2 verranno descritte

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Laboratorio di IUM. Lezione 8. L'AWT che serve. Di Blasi Gianpiero - D.M.I. - Università di Catania

Laboratorio di IUM. Lezione 8. L'AWT che serve. Di Blasi Gianpiero - D.M.I. - Università di Catania Di Blasi Gianpiero - D.M.I. - Università di Catania Laboratorio di IUM Lezione 8 L'AWT che serve Cosa impareremo oggi? L'API per la stampa La clipboard di sistema Il Drag'n'Drop L'API per la stampa (1)

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012 Informatica Grafica (2a parte) a.a. 2011/2012 Prof. Massimiliano Dellisanti Fabiano Vilardi 1 Grafica 3D Con Grafica 3D si indicano quelle tecniche informatiche finalizzate alla descrizione (e rappresentazione

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

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Parte 17. GUI Parte terza. [M.Chagall The Wedding Candles, 1945] 17.1 - AA. 2013/14

Parte 17. GUI Parte terza. [M.Chagall The Wedding Candles, 1945] 17.1 - AA. 2013/14 Parte 17 GUI Parte terza - AA. 2013/14 [M.Chagall The Wedding Candles, 1945] 17.1 17.2 Immagini e figure geometriche La libreria GTK+ utilizza a sua volta le funzioni di più basso livello delle librerie

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Manuale d uso della libreria Volta Log

Manuale d uso della libreria Volta Log Manuale d uso della libreria Volta Log www.satellitevolta.com 1 www.satellitevolta.com 2 [Rif.01] Pacchetto di distribuzione di Volta Log (volta-log-x.y.z.* scaricabile da http://sourceforge.net/projects/voltalog/files/?source=navbar)

Dettagli

Lezione 6 Introduzione a Microsoft Excel Parte Terza

Lezione 6 Introduzione a Microsoft Excel Parte Terza Lezione 6 Introduzione a Microsoft Excel Parte Terza I grafici in Excel... 1 Creazione di grafici con i dati di un foglio di lavoro... 1 Ricerca del tipo di grafico più adatto... 3 Modifica del grafico...

Dettagli

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D Informatica Grafica I Marco Gribaudo marcog@di.unito.it Animazioni 3D L'animazione 3D si basa sugli stessi principi dell'animazione tradizionale. Il filmato viene realizzato attraverso una sequenza di

Dettagli

Programmare script e Add-Ons per Blender 3D 2.5

Programmare script e Add-Ons per Blender 3D 2.5 Programmare script e Add-Ons per Blender 3D 2.5 Volume 1 www.redbaron85.com 1 SOMMARIO Premessa...5 Le basi del linguaggio Python...6 Il linguaggio Python...6 Cosa serve per programmare in Python...7 Il

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

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

Questa sezione descrive come creare oggetti geometrici solidi tridimensionali e come gestirli in PicturesToExe.

Questa sezione descrive come creare oggetti geometrici solidi tridimensionali e come gestirli in PicturesToExe. 2015/05/03 14:36 1/12 Questa sezione descrive come creare oggetti geometrici solidi tridimensionali e come gestirli in PicturesToExe. Cornici Una cornice è un oggetto (normalmente) trasparente al quale

Dettagli

Conosci il calcio-manuale-copyright 2009 Lallo,Rendinella. Conosci il Calcio. Guida all'uso

Conosci il calcio-manuale-copyright 2009 Lallo,Rendinella. Conosci il Calcio. Guida all'uso Conosci il Calcio Guida all'uso 1 dedicato a tutte le vittime del calcio 2 INDICE 1.Introduzione Motivazioni & Scopo Requisiti 2.Funzionamento Le domande Esempio di esecuzione 3.Conclusioni Sviluppi Futuri

Dettagli

Processo di rendering

Processo di rendering Processo di rendering 1 Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione I parametri della vista 3D I sistemi di coordinate 2 I parametri

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Web File System Manuale utente Ver. 1.0

Web File System Manuale utente Ver. 1.0 Web File System Manuale utente Ver. 1.0 Via Malavolti 31 41100 Modena Tel. 059-2551137 www.keposnet.com Fax 059-2558867 info@keposnet.com Il KDoc è un Web File System cioè un file system accessibile via

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Configurare e Gestire le ACLs in oneye 0.8

Configurare e Gestire le ACLs in oneye 0.8 Configurare e Gestire le ACLs in oneye 0.8 Ti stai chiedendo come funzionano in Controlli di Accesso in oneye, ma non sai come utilizzarli? Continua a leggere. In questa guida, mostrerò come sia possibile

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

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento SOFTWARE PER L ARCHIVIAZIONE ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA INDICE SOFTWARE PER

Dettagli

Il sistema operativo: interazione con l utente

Il sistema operativo: interazione con l utente interazione con l utente S.O fornisce un meccanismo per specificare le attività da eseguire (es. copiare un file) L interazione avviene mediante un linguaggio testuale (DOS) o grafico (Windows) linguaggio

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015 Chi deve recuperare il progetto del modulo 1 ha 1 ora e 30 minuti per svolgere gli esercizi 1, 2, 3 Chi deve recuperare

Dettagli

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Class File bytecode. Class loader. Verifier JIT. Run-time System

Class File bytecode. Class loader. Verifier JIT. Run-time System Un file.class è ottenuto compilando il codice sorgente Java. Esso contiene il bytecode, ovvero la sequenza di istruzioni per la JVM, ed anche molte informazioni simboliche. Il bytecode è il linguaggio

Dettagli

Nuvola It Data Space

Nuvola It Data Space MANUALE UTENTE INDICE 1. Descrizione servizio... 3 1.1. Informazioni sul servizio di Telecom Italia... 3 1.2. Ruoli e Autenticazione per il servizio di Telecom Italia... 3 1.3. Strumenti... 5 1.4. Documentazione...

Dettagli

Open Source 3D Engine. OpenGL Rendering System. Il Framework

Open Source 3D Engine. OpenGL Rendering System. Il Framework Open Source 3D Engine OpenGL Rendering System Il Framework I moderni mezzi di programmazione, consentono a noi sviluppatori di utilizzare librerie avanzate e testate che si prestano eccellentemente allo

Dettagli

Guida OpenOffice.org Impress

Guida OpenOffice.org Impress Guida OpenOffice.org Impress Introduzione ad Impress IMPRESS è un programma nato per creare presentazioni e lezioni di aspetto professionale. È un programma inserito nella versione standard del pacchetto

Dettagli

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time

Lezione 19: Grafica in tempo reale. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time. I problemi del Real Time I problemi del Real Time Lezione 19: Grafica in tempo reale Come visto nelle precedenti lezioni, i calcoli necessari a generare immagini 3D sono numerosi e complessi. I programmi di grafica 3D impiegano

Dettagli

Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen

Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen Prerequisiti Mon Ami 3000 Touch Interfaccia di vendita semplificata per monitor touchscreen L opzione Touch è disponibile per le versioni Vendite, Azienda Light e Azienda Pro; per sfruttarne al meglio

Dettagli

VRay Map: VRayEdgesTex

VRay Map: VRayEdgesTex VRay Map: VRayEdgesTex INTRODUZIONE Uno dei classici impieghi della VRayEdgeTex consiste nella simulazione dell effetto filo di ferro, effetto simile a quello generato tramite l attivazione dell opzione

Dettagli

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto) Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni

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

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

16.3.1 Alberi binari di ricerca

16.3.1 Alberi binari di ricerca 442 CAPITOLO 16. STRUTTURE DI DATI DINAMICHE root 7 5 11 2 8 13 10 Figura 16.11 Esempio di albero binario: ogni nodo contiene il dato da immagazzinare e tre puntatori che definiscono le sue relazioni 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

Manuale di sviluppo Geecom Scritto da Andrea Pastore. versione 2.1 24/11/2014

Manuale di sviluppo Geecom Scritto da Andrea Pastore. versione 2.1 24/11/2014 Manuale di sviluppo Geecom Scritto da Andrea Pastore versione 2.1 24/11/2014 Capitolo 1: creare un template per Geecom La struttura di un template geecom Creare un template personalizzato Sommario Capitolo

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,...

Entropia. Motivazione. ? Quant è l informazione portata dalla sequenza? Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,... Entropia Motivazione Abbiamo una sequenza S di N simboli (campioni audio, pixel, caratteri,... ) s,s 2,s 3,... ognuno dei quali appartiene ad un alfabeto A di M elementi.? Quant è l informazione portata

Dettagli