La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fabio Massacci Programmazione ad Oggetti 1 Fondamenti di Informatica per Ingegneria Prof. Ing. Fabio Massacci (A-L) Ing. Enrico Blanzieri (M-Z) Lezione.

Presentazioni simili


Presentazione sul tema: "Fabio Massacci Programmazione ad Oggetti 1 Fondamenti di Informatica per Ingegneria Prof. Ing. Fabio Massacci (A-L) Ing. Enrico Blanzieri (M-Z) Lezione."— Transcript della presentazione:

1 Fabio Massacci Programmazione ad Oggetti 1 Fondamenti di Informatica per Ingegneria Prof. Ing. Fabio Massacci (A-L) Ing. Enrico Blanzieri (M-Z) Lezione 5 Dip. di Informatica e Telecomunicazioni Università di Trento

2 Fabio Massacci Programmazione ad Oggetti 2 Linguaggi Rappresentazione Grafici Rappresenta forme/ambienti interattivi 3D –Descrive oggetti geometrici –Descrive relazioni (temporali/animazione) tra essi VRML = Virtual Reality Modeling Language Semantica dei file con estensione.wrl –Editor di testo = mostra linguaggio –VRML Browser = interpreta linguaggio = costruisce oggetti grafici VRML helper-application VRML plug-in di browser HTML (IE, Netscape, Opera)

3 Fabio Massacci Programmazione ad Oggetti 3 Scrivere Linguaggi Grafici Costruzione di file VRML –editor di testi flessibile, controllo dettagliato ma lungo e difficile –applicazione ad-hoc (world builder) con interfaccia grafica facile ma può produrre VRML non efficiente –modellatore 3D (interfaccia grafica) e trasformazione facile ma non reversibile e VRML non sempre efficiente –programmi utente che generano forme opportune AutoCAD esempio di modellatore 3D statico

4 Fabio Massacci Programmazione ad Oggetti 4 Generatori/Visualizzatori VRML Editing di file VRML –Editor di testo: Notepad/Wordpad –Editor specializzato VRMLpad (Parallel Graphics) - Aula A1 –Internet Space Builder (Parellel Graphics) - Aula A1 incorpora anche file AutoCAD Visualizzazione di file VRML –Plug-in di IE e Netscape (Cosmo Player - Cortona) - Internet –Internet Space Builder (Parellel Graphics) - Aula A1 Altri visualizzatori/editor VRML –http://www.vrml.org

5 Fabio Massacci Programmazione ad Oggetti 5 Rappresentare Oggetti in VRML File VRML descrive un mondo –Sistema di assi cartesiani X/Y/Z –Tutti gli oggetti sono costruiti nel sistema di assi cartesiani –Default: oggetti centrati nellorigine

6 Fabio Massacci Programmazione ad Oggetti 6 Componenti VRML File header –informazioni per linterprete (versione/codifica/etc) Commenti Nodi (Node) –Oggetti fisici (Cubi, Sfere, Superfici) o matematici (orologio, funzione che descrive il movimento) etc. Campi (Fields) per ogni nodo –Attributi di ciascun oggetto/nodo (dimensione, colore, parti) Valori (Values) per ciascun campo –Valori di un attributi: numeri, coppie e triple (coordinate XYZ), vettori, altri oggetti fisici o matematici

7 Fabio Massacci Programmazione ad Oggetti 7 Esempio di file VRML #VRML V2.0 utf8 # Commento: un bel cilindro # di altezza 2m e raggio 1.5m Shape { appearance... geometry Cylinder { height 2.0 radius 1.5 }

8 Fabio Massacci Programmazione ad Oggetti 8 Componenti VRML - header Header #VRML V2.0 utf8 #VRML : il file contiene testo VRML V2.0 : il testo è conforme alla sintassi della versione 2.0 utf8 : il testo usa i caratteri UTF8 UTF è un formato di caratteri internazionale –utf8 = UCS (Universal Character Set) Transformation Format, 8-bit –Codifica oltre 24,000 caratteri di molte lingue

9 Fabio Massacci Programmazione ad Oggetti 9 Componenti VRML - Nodi Nodo - descrive oggetti, forme, luci, suoni –ha un tipo (Shape, Cylinder, etc.) –delimitato da coppia di parentesi graffe –zero o più campi al suo interno (proprietà del nodo) Shape { appearance... geometry Cylinder { height 2.0 radius 1.5 }

10 Fabio Massacci Programmazione ad Oggetti 10 Componenti VRML - Nodi (cont) I tipi dei nodi sono case sensitive –ogni parola inzia con una maiuscola –il resto della parola è in caratteri minuscoli –tutto in inglese Esempi Shape- Forma Appearance -Apparenza Cylinder -Cilindro Material-Materiale ElevationGrid-CurveDiLivello FontStyle-StileCarattere ImageTexture-TessituraImmagine IndexedFaceSet-InsiemeDiFacceIndicizzate

11 Fabio Massacci Programmazione ad Oggetti 11 Componenti VRML - Campi Il Campo/Field è una proprietà del nodo –ha un nome (height, radius, etc.) –ha un tipo (float, integer, nodo etc.) –un valore di default Il valore di default viene utilizzato dallinterprete se non si mette il campo esplicitamente Cylinder { height 2.0 radius 1.5 }

12 Fabio Massacci Programmazione ad Oggetti 12 Componenti VRML - Campi (cont) I nomi dei campi sono case sensitive –la prima parola inzia con una minuscola –ogni altra parola inizia con una maiuscola –il resto della parola è in caratteri minuscoli –tutto in inglese Esempi height-altezza material-materiale radius -raggio coordIndex -indiceCoordinate diffuseColor-coloreRifratto fontStyle-stileCarattere textureTransform-trasformazioneTessitura

13 Fabio Massacci Programmazione ad Oggetti 13 Componenti VRML - Campi (cont) Ogni nodo ha i suoi campi differenti –Cilindro (altezza), Sfera (raggio), Apparenza (coloreRifratto) Tutti i campi sono opzionali –un valore di default viene usato se il campo è omesso I campi possono essere in qualsiasi ordine Lordine non cambia il risultato –Ovvio per ling. rappresentazione: descrive il mondo come è –Errato per ling. programmazione: descrive cosa fare per cambiare il mondo Cylinder { height 2.0 radius 1.5 } Cylinder { radius 1.5 height 2.0 }

14 Fabio Massacci Programmazione ad Oggetti 14 VRML - Oggetti Geometrici Shape (Forma) nodo base in VRML Forma geometrica è componente elementare –Box (Parallelepipedo) –Cone (Cono) –Cylinder (Cilindro) –Sphere (Sfera) –Text (Testo) –Testo non è propriamente geometrico ma più semplice considerarlo oggetto elementare

15 Fabio Massacci Programmazione ad Oggetti 15 VRML - Oggetti Geometrici (cont) Un nodo Shape serve a costruire una forma Campi comuni a tutte le forme –appearance - apparenza Include colore e tessitura per ora omesso: default è bianco sporco uniforme –geometry - geometria include la forma vera e propria o la struttura Shape { appearance... geometry... }

16 Fabio Massacci Programmazione ad Oggetti 16 VRML - Oggetti Geometrici (Sphere) Sfera –Forma (Shape) in cui lattributo geometria (geometry) ha il valore Sphere {... } Proprietà: radius (raggio) –numero reale Shape { geometry Sphere { radius 1.0 }

17 Fabio Massacci Programmazione ad Oggetti 17 VRML - Oggetti Geometrici (Box) Parallelepipedo (Box) –Forma (Shape) in cui lattributo geometria (geometry) ha il valore Box {... } Proprietà: size –tripla di reali (larghezza, altezza, profondità in metri) Shape { geometry Box { size }

18 Fabio Massacci Programmazione ad Oggetti 18 VRML - Oggetti Geometrici (Cone) Cono a punta in alto (Cone) –Forma (Shape) in cui lattributo geometria (geometry) ha il valore Cone {... } Proprietà: height (altezza), bottomRadius (raggioBase) –numeri reali Shape { geometry Cone { height 2.0 bottomRadius 1.0 }

19 Fabio Massacci Programmazione ad Oggetti 19 VRML - Oggetti Geometrici (Cone) cont Proprietà di base del cono: –height, bottomRadius numeri reali Proprietà visuali: bottom (fondo), side (lato) –valori booleani: TRUE/FALSE –significato: cè il fondo/cè la parete laterale del cono bottom TRUE = cono con il fondo visibile bottom FALSE = cono cavo –valore di default è TRUE –Domanda: se non cè il lato, che cono è? Un cono invisibile, come un cono dombra, ad esempio...

20 Fabio Massacci Programmazione ad Oggetti 20 VRML - Oggetti Geometrici (Cylinder) Cilindro verticale –Forma (Shape) in cui lattributo geometria (geometry) ha il valore Cylinder {... } Proprietà: height (altezza), radius (raggio) –numeri reali Shape { geometry Cylinder { height 2.0 radius 1.0 }

21 Fabio Massacci Programmazione ad Oggetti 21 VRML - Oggetti Geom. (Cylinder) cont Proprietà di base del cilindro: –height, radius numeri reali Proprietà visuali: bottom (tappo inferiore), side (lato), top (tappo superiore), –valori booleani: TRUE/FALSE –significato: cè il fondo/cè la parete laterale del cilindro/cè il tappo superiore del cilindro bottom TRUE = cilindro chiuso in fondo top FALSE = cilindro aperto in cima –valore di default è TRUE

22 Fabio Massacci Programmazione ad Oggetti 22 Cilindro in VRML #VRML V2.0 utf8 # A cylinder geometry Cylinder { height 2.0 radius 1.5 }

23 Fabio Massacci Programmazione ad Oggetti 23 VRML - Oggetti Geometrici (Text) Testo –Forma (Shape) in cui lattributo geometria (geometry) ha il valore Text {... } Proprietà: string (stringa da scrivere), fontStyle –lista di stringhe di caratteri (parentesi quadre per delimitare, virgola per andata a capo) Shape { geometry Text { string ["Text", "Shape" ] }

24 Fabio Massacci Programmazione ad Oggetti 24 VRML - Oggetti Geom. (Text) cont Proprietà di base del Testo: –string lista di stringhe di caratteri Proprietà di formattazione: fontStyle –Valore è a sua volta un nodo di tipo FontStyle con proprietà –size - altezza (in metri) del carattere –spacing - spazio (in metri) tra le righe/colonne –horizontal - allineamento orizzontale ( TRUE ), verticale ( FALSE ) –leftToRight, topToBottom - direzione scrittura ( TRUE/FALSE ) –justify - allineamento con origine degli assi e stringhe ( FIRST, BEGIN, MIDDLE, END ) –family - famiglia di font ( SERIF, SANS, TYPEWRITER ) –style - stile ( BOLD, ITALIC, BOLDITALIC, PLAIN )

25 Fabio Massacci Programmazione ad Oggetti 25 Molteplicità di Oggetti Geometrici Un file VRML può contenere molteplici oggetti Default: ogni oggetto è centrato nellorigine Gli oggetti si sovrappongono quando costruiti nello stesso posto

26 Fabio Massacci Programmazione ad Oggetti 26 Molteplicità di Oggetti (cont) La nave spaziale è data dalla costruzione di Un cubo –Box { size } Una sfera –Sphere { radius 0.7 } Quattro cilindri –Cylinder { radius 1.25height 0.05 } –Cylinder { radius 0.4height 2.0 } –Cylinder { radius 0.3height 3.0 } –Cylinder { radius 0.1height 6.0 }

27 Fabio Massacci Programmazione ad Oggetti 27 Molteplicità di Oggetti (cont) #VRML V2.0 utf8 Shape { geometry Box { size } Shape { geometry Sphere { radius 0.7 }...


Scaricare ppt "Fabio Massacci Programmazione ad Oggetti 1 Fondamenti di Informatica per Ingegneria Prof. Ing. Fabio Massacci (A-L) Ing. Enrico Blanzieri (M-Z) Lezione."

Presentazioni simili


Annunci Google