SlideShare a Scribd company logo
Corso Data Journalist gen-mar 2017
TECNOLOGIE WEB AVANZATO
SVG e grafica vettoriale
Grafica raster Grafica vettoriale
ingrandimento
Una figura è
definita da una
matrice di pixel
Una figura è definita da primitive
grafiche quali linee o poligoni
Primitive grafiche
ingrandimento
dimensione 1 dimensione 2
SVG (Scalable Vector Graphics)
SVG è il linguaggio di
programmazione riconosciuto
dai normali browser per definire
immagini vettoriali.
<!DOCTYPE html>
<html>
<head/>
<meta charset="utf-8">
<title>Grafico Line</title>
</head>
<body>
<svg width="150" height="150">
Primitive grafiche
</svg>
</body>
</html>
Viewport
La viewport è definita dai valori assegnati agli attributi
width e height.
Il valore dei due attributi è un intero+l’unità di misura:
.. px : dimensione in pixel
...em: n volte la dimensione del carattere standard
..cm: dimensione in centimetri
………..
Se l’unità di misura non è specifica, il browser considera il
valore espresso in pixel.
Ad esempio:
<svg width="200" height="100">
definisce una viewport larga 200 pixel e alta 100 pixel
Viewbox
La viewbox è un attributo a cui devono essere assegnati
una sequenza di 4 valori:
1) x del punto in alto a sinistra;
2) y del punto in alto a sinistra;
3) larghezza del box;
4) altezza del box;
definisce il sistema di coordinate interno alla figura svg.
Ad esempio:
<svg width="200" height="200"
viewBox="0 0 100 100">
definisce un sistema di coordinate interno alla figura svg,
con origine al punto 0,0 e lunghezza 100 e larghezza 100.
Il sistema riproporziona in automatico la viewbox alle dimensioni della viewport
Relazione tra viewport e viewbox
<svg width="200" height="200"
viewBox=”0 0 100 100” >
<svg width="200" height="100"
viewBox=”0 0 100 100” >
<svg width="200" height="200"
viewBox=”-50 0 100 100” >
<svg width="200" height="200"
viewBox=”50 0 100 100” >
Linee e rettangoli
<svg width="400" height="110">
<rect x="10" y="30"
width="300" height="100"
style="fill : rgb(0,100,100);
stroke-width:4;
stroke:rgb(0,0,0)"/>
</svg>
<svg height="200" width="200"
viewBox="0 0 200 200">
<line x1="0" y1="0"
x2="200" y2="200"
style="stroke:rgb(255,0,0);
stroke-width:2" />
</svg>
line rect
Disegno di un rettangolo per analizzare la relazione tra viewport e viewbox
<style>
svg {background-color:rgb(200,200,200);}
</style>
<svg width="200" height="200" viewBox="00 0 100 100">
<rect x="0" y="0" width="100" height="100"
style="fill : rgb(0,100,100);
stroke-width:4;
stroke:rgb(0,0,0)"/>
</svg>
Cerchi ed ellissi
<svg height="140" width="500">
<ellipse cx="200" cy="80"
rx="100" ry="50"
style="fill:yellow;
stroke:purple;
stroke-width:2" />
</svg>
<svg height="100" width="100">
<circle cx="50" cy="50" r="40"
style="stroke:black;
stroke-width:3;
fill:red" />
</svg>
circle ellipse
Poligoni
0,0 200
100
<svg width="400" height="200" viewBox=”0 0 200 100” >
<polygon points="20,90 70,20 130,20 180,90" style="fill:rgb(256,160,60);
stroke:rgb(60,160,240);
stroke-width:10"
</svg>
viewBox
LEZIONE 1..
www.fordatascientist.org
C00-Web-Base
C50-SVG-Introduction
PATH
<svg width="200" height="100" viewBox=”0 0 200 100” >
<path d ="M0 10 L100 50 L100 100 L200 0"
style="stroke:red; stroke-width:6; fill:none"
</svg>
0,10
100,50
100,100
100,200
<svg width="200" height="100" viewBox=”0 0 200 100” >
<path d="M50 50 A30 50 0 0 1 100 100"
style="stroke:red; stroke-width:6; fill:none"
</svg>
0,0
0,0
100
200
100
200
50,50
100,100
30
50
0
0
1
x-axis-rotation (non si usa quasi mai)
large-arc-flag (per scegliere l’arco minore o maggiore)
sweep-flag (per scegliere l’arco opposto rispetto all’asse x)
Line
Arcs
PATH
<svg width="200" height="200" viewBox=”0 0 200 200” >
<path d="M50,50 Q50,130 100,100"
style="stroke:red; stroke-width:6; fill:none"
</svg>
100,100
0,0
200
200
Quadratic Bezier Curves
50,50
50,130control point . Questo punto attrae
la curva come un magnete
50,130
Attributi Valori di style
<rect x="0" y="0"
width="100"
height="50"
fill= "red"
stroke="green"
stroke-width="2"
>
<rect x="0" y="0"
width="100"
height="50"
style="fill:red;
stroke:green;
stroke-width:2"
>
le due istruzioni sono equivalenti
Gruppi di elementi che condividono uno stile
Le primitive SVG possono essere riunite in gruppi attraverso il tag <g>...</g>
Esempio:
<g style="stroke:green; stroke-width:5;">
<line x1="0" y1="20" x2="70" y2="125"/>
<rect x="100" y="100" width="200" height="100" style="fill:#CCCC99;"/>
</g>
Programmi per scrivere programmi: d3js
2000 2005 2010 2015
<svg width="150" height="150">
<g style="fill:green; stroke:none">
<rect x="0" y="40" width="10" height="110" />
<rect x="15" y="50" width="10" height="100" />
<rect x="30" y="53" width="10" height="97" />
<rect x="45" y="60 width="10" height="90" />
………..
<rect x="120" y="10" width="10" height="140" />
<rect x="135" y="20" width="10" height="130" />
</g>
</sgv>
Ciclo
CONTATTI TELEFONO
051 22 35 20
EMAIL
WORKSHOP@VICEM.IT

More Related Content

Viewers also liked

Inkscape ok - prova slides corso
Inkscape ok - prova slides corsoInkscape ok - prova slides corso
Inkscape ok - prova slides corso
Silvia Mazzucco
 
Digitalizzare immagini
Digitalizzare immaginiDigitalizzare immagini
Digitalizzare immaginidaniele80
 
Introduzione alla grafica
Introduzione alla graficaIntroduzione alla grafica
Introduzione alla grafica
RoBisc
 
Quale software libero usare a scuola
Quale software libero usare a scuolaQuale software libero usare a scuola
Quale software libero usare a scuola
LibreItalia
 
Grafica per il Marketing in pillole - 03 Font
Grafica per il Marketing in pillole - 03 FontGrafica per il Marketing in pillole - 03 Font
Grafica per il Marketing in pillole - 03 Font
Stefano Ferranti
 
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
Matteo Brunati
 
Web advanced-02-jquery
Web advanced-02-jqueryWeb advanced-02-jquery
Web advanced-02-jquery
Studiabo
 
Python advanced 08-gis
Python advanced 08-gisPython advanced 08-gis
Python advanced 08-gis
Studiabo
 
Python advanced 07-pandas-plot
Python advanced 07-pandas-plotPython advanced 07-pandas-plot
Python advanced 07-pandas-plot
Studiabo
 
Web base-05-js-object
Web base-05-js-objectWeb base-05-js-object
Web base-05-js-object
Studiabo
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Roma
gabriele nocco
 
Python base 07-classioggetti
Python base 07-classioggettiPython base 07-classioggetti
Python base 07-classioggetti
Studiabo
 
LibreOffice Calc base
LibreOffice Calc baseLibreOffice Calc base
LibreOffice Calc base
LibreItalia
 
Web advanced-01-asincrono
Web advanced-01-asincronoWeb advanced-01-asincrono
Web advanced-01-asincrono
Studiabo
 
Web advanced-11-d3 js
Web advanced-11-d3 jsWeb advanced-11-d3 js
Web advanced-11-d3 js
Studiabo
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
Studiabo
 
Python advanced 03-multiindex
Python advanced 03-multiindexPython advanced 03-multiindex
Python advanced 03-multiindex
Studiabo
 
Python base 10-strutturadati
Python base 10-strutturadatiPython base 10-strutturadati
Python base 10-strutturadati
Studiabo
 
Python advanced 06-matplotlib
Python advanced 06-matplotlibPython advanced 06-matplotlib
Python advanced 06-matplotlib
Studiabo
 
Web base-01-html
Web base-01-htmlWeb base-01-html
Web base-01-html
Studiabo
 

Viewers also liked (20)

Inkscape ok - prova slides corso
Inkscape ok - prova slides corsoInkscape ok - prova slides corso
Inkscape ok - prova slides corso
 
Digitalizzare immagini
Digitalizzare immaginiDigitalizzare immagini
Digitalizzare immagini
 
Introduzione alla grafica
Introduzione alla graficaIntroduzione alla grafica
Introduzione alla grafica
 
Quale software libero usare a scuola
Quale software libero usare a scuolaQuale software libero usare a scuola
Quale software libero usare a scuola
 
Grafica per il Marketing in pillole - 03 Font
Grafica per il Marketing in pillole - 03 FontGrafica per il Marketing in pillole - 03 Font
Grafica per il Marketing in pillole - 03 Font
 
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
Big Data, Open Data e AppsforItaly: i dati come conversazione importano alle ...
 
Web advanced-02-jquery
Web advanced-02-jqueryWeb advanced-02-jquery
Web advanced-02-jquery
 
Python advanced 08-gis
Python advanced 08-gisPython advanced 08-gis
Python advanced 08-gis
 
Python advanced 07-pandas-plot
Python advanced 07-pandas-plotPython advanced 07-pandas-plot
Python advanced 07-pandas-plot
 
Web base-05-js-object
Web base-05-js-objectWeb base-05-js-object
Web base-05-js-object
 
Google Dev Fest 2016 - Roma
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Roma
 
Python base 07-classioggetti
Python base 07-classioggettiPython base 07-classioggetti
Python base 07-classioggetti
 
LibreOffice Calc base
LibreOffice Calc baseLibreOffice Calc base
LibreOffice Calc base
 
Web advanced-01-asincrono
Web advanced-01-asincronoWeb advanced-01-asincrono
Web advanced-01-asincrono
 
Web advanced-11-d3 js
Web advanced-11-d3 jsWeb advanced-11-d3 js
Web advanced-11-d3 js
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 
Python advanced 03-multiindex
Python advanced 03-multiindexPython advanced 03-multiindex
Python advanced 03-multiindex
 
Python base 10-strutturadati
Python base 10-strutturadatiPython base 10-strutturadati
Python base 10-strutturadati
 
Python advanced 06-matplotlib
Python advanced 06-matplotlibPython advanced 06-matplotlib
Python advanced 06-matplotlib
 
Web base-01-html
Web base-01-htmlWeb base-01-html
Web base-01-html
 

Similar to Web advanced-10-svg

Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
Massimo Bonanni
 
HTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesignerHTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesigner
Matteo Magni
 
Primo approccio al design adattivo
Primo approccio al design adattivoPrimo approccio al design adattivo
Primo approccio al design adattivo
Salvatore Paone
 
R Graphics
R GraphicsR Graphics
R Graphics
Davide Rambaldi
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Andrea Picchi
 
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazionescipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
Francesco Cavazzana
 

Similar to Web advanced-10-svg (6)

Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 
HTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesignerHTML5 e Css3 - 5 | WebMaster & WebDesigner
HTML5 e Css3 - 5 | WebMaster & WebDesigner
 
Primo approccio al design adattivo
Primo approccio al design adattivoPrimo approccio al design adattivo
Primo approccio al design adattivo
 
R Graphics
R GraphicsR Graphics
R Graphics
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazionescipy e rpy per l'analisi degli acquisti della pubblica amministrazione
scipy e rpy per l'analisi degli acquisti della pubblica amministrazione
 

More from Studiabo

Big data rischi
Big data rischiBig data rischi
Big data rischi
Studiabo
 
Big data correlazioni
Big data correlazioniBig data correlazioni
Big data correlazioni
Studiabo
 
Ravenna2019 - lezione Big Data
Ravenna2019 - lezione Big DataRavenna2019 - lezione Big Data
Ravenna2019 - lezione Big Data
Studiabo
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
Studiabo
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
Studiabo
 
Strutture dati 06-dataframe
Strutture dati 06-dataframeStrutture dati 06-dataframe
Strutture dati 06-dataframe
Studiabo
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
Studiabo
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
Studiabo
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltin
Studiabo
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
Studiabo
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringhe
Studiabo
 
Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019
Studiabo
 
Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018
Studiabo
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
Studiabo
 
Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018
Studiabo
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
Studiabo
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
Studiabo
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
Studiabo
 
Strutture dati 06-dataframe
Strutture dati 06-dataframeStrutture dati 06-dataframe
Strutture dati 06-dataframe
Studiabo
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
Studiabo
 

More from Studiabo (20)

Big data rischi
Big data rischiBig data rischi
Big data rischi
 
Big data correlazioni
Big data correlazioniBig data correlazioni
Big data correlazioni
 
Ravenna2019 - lezione Big Data
Ravenna2019 - lezione Big DataRavenna2019 - lezione Big Data
Ravenna2019 - lezione Big Data
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
 
Strutture dati 06-dataframe
Strutture dati 06-dataframeStrutture dati 06-dataframe
Strutture dati 06-dataframe
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 
Strutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltinStrutture dati 03-stutturedatibuiltin
Strutture dati 03-stutturedatibuiltin
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
 
Strutture dati 01-numeristringhe
Strutture dati 01-numeristringheStrutture dati 01-numeristringhe
Strutture dati 01-numeristringhe
 
Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019Strutture dati 00-corso2018-2019
Strutture dati 00-corso2018-2019
 
Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018Pres ulisse acciaio-ottobre2018
Pres ulisse acciaio-ottobre2018
 
Strutture dati 08-reshape
Strutture dati 08-reshapeStrutture dati 08-reshape
Strutture dati 08-reshape
 
Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018Pres ulisse acciaio-aprile2018
Pres ulisse acciaio-aprile2018
 
Strutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltinStrutture dati 02-strutturecontrollo-funzionibuiltin
Strutture dati 02-strutturecontrollo-funzionibuiltin
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
 
Strutture dati 05-numpypandas
Strutture dati 05-numpypandasStrutture dati 05-numpypandas
Strutture dati 05-numpypandas
 
Strutture dati 06-dataframe
Strutture dati 06-dataframeStrutture dati 06-dataframe
Strutture dati 06-dataframe
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 

Web advanced-10-svg

  • 1. Corso Data Journalist gen-mar 2017 TECNOLOGIE WEB AVANZATO SVG e grafica vettoriale
  • 2. Grafica raster Grafica vettoriale ingrandimento Una figura è definita da una matrice di pixel Una figura è definita da primitive grafiche quali linee o poligoni Primitive grafiche ingrandimento dimensione 1 dimensione 2
  • 3. SVG (Scalable Vector Graphics) SVG è il linguaggio di programmazione riconosciuto dai normali browser per definire immagini vettoriali. <!DOCTYPE html> <html> <head/> <meta charset="utf-8"> <title>Grafico Line</title> </head> <body> <svg width="150" height="150"> Primitive grafiche </svg> </body> </html>
  • 4. Viewport La viewport è definita dai valori assegnati agli attributi width e height. Il valore dei due attributi è un intero+l’unità di misura: .. px : dimensione in pixel ...em: n volte la dimensione del carattere standard ..cm: dimensione in centimetri ……….. Se l’unità di misura non è specifica, il browser considera il valore espresso in pixel. Ad esempio: <svg width="200" height="100"> definisce una viewport larga 200 pixel e alta 100 pixel Viewbox La viewbox è un attributo a cui devono essere assegnati una sequenza di 4 valori: 1) x del punto in alto a sinistra; 2) y del punto in alto a sinistra; 3) larghezza del box; 4) altezza del box; definisce il sistema di coordinate interno alla figura svg. Ad esempio: <svg width="200" height="200" viewBox="0 0 100 100"> definisce un sistema di coordinate interno alla figura svg, con origine al punto 0,0 e lunghezza 100 e larghezza 100. Il sistema riproporziona in automatico la viewbox alle dimensioni della viewport
  • 5. Relazione tra viewport e viewbox <svg width="200" height="200" viewBox=”0 0 100 100” > <svg width="200" height="100" viewBox=”0 0 100 100” > <svg width="200" height="200" viewBox=”-50 0 100 100” > <svg width="200" height="200" viewBox=”50 0 100 100” >
  • 6. Linee e rettangoli <svg width="400" height="110"> <rect x="10" y="30" width="300" height="100" style="fill : rgb(0,100,100); stroke-width:4; stroke:rgb(0,0,0)"/> </svg> <svg height="200" width="200" viewBox="0 0 200 200"> <line x1="0" y1="0" x2="200" y2="200" style="stroke:rgb(255,0,0); stroke-width:2" /> </svg> line rect
  • 7. Disegno di un rettangolo per analizzare la relazione tra viewport e viewbox <style> svg {background-color:rgb(200,200,200);} </style> <svg width="200" height="200" viewBox="00 0 100 100"> <rect x="0" y="0" width="100" height="100" style="fill : rgb(0,100,100); stroke-width:4; stroke:rgb(0,0,0)"/> </svg>
  • 8. Cerchi ed ellissi <svg height="140" width="500"> <ellipse cx="200" cy="80" rx="100" ry="50" style="fill:yellow; stroke:purple; stroke-width:2" /> </svg> <svg height="100" width="100"> <circle cx="50" cy="50" r="40" style="stroke:black; stroke-width:3; fill:red" /> </svg> circle ellipse
  • 9. Poligoni 0,0 200 100 <svg width="400" height="200" viewBox=”0 0 200 100” > <polygon points="20,90 70,20 130,20 180,90" style="fill:rgb(256,160,60); stroke:rgb(60,160,240); stroke-width:10" </svg> viewBox
  • 11. PATH <svg width="200" height="100" viewBox=”0 0 200 100” > <path d ="M0 10 L100 50 L100 100 L200 0" style="stroke:red; stroke-width:6; fill:none" </svg> 0,10 100,50 100,100 100,200 <svg width="200" height="100" viewBox=”0 0 200 100” > <path d="M50 50 A30 50 0 0 1 100 100" style="stroke:red; stroke-width:6; fill:none" </svg> 0,0 0,0 100 200 100 200 50,50 100,100 30 50 0 0 1 x-axis-rotation (non si usa quasi mai) large-arc-flag (per scegliere l’arco minore o maggiore) sweep-flag (per scegliere l’arco opposto rispetto all’asse x) Line Arcs
  • 12. PATH <svg width="200" height="200" viewBox=”0 0 200 200” > <path d="M50,50 Q50,130 100,100" style="stroke:red; stroke-width:6; fill:none" </svg> 100,100 0,0 200 200 Quadratic Bezier Curves 50,50 50,130control point . Questo punto attrae la curva come un magnete 50,130
  • 13. Attributi Valori di style <rect x="0" y="0" width="100" height="50" fill= "red" stroke="green" stroke-width="2" > <rect x="0" y="0" width="100" height="50" style="fill:red; stroke:green; stroke-width:2" > le due istruzioni sono equivalenti
  • 14. Gruppi di elementi che condividono uno stile Le primitive SVG possono essere riunite in gruppi attraverso il tag <g>...</g> Esempio: <g style="stroke:green; stroke-width:5;"> <line x1="0" y1="20" x2="70" y2="125"/> <rect x="100" y="100" width="200" height="100" style="fill:#CCCC99;"/> </g>
  • 15. Programmi per scrivere programmi: d3js 2000 2005 2010 2015 <svg width="150" height="150"> <g style="fill:green; stroke:none"> <rect x="0" y="40" width="10" height="110" /> <rect x="15" y="50" width="10" height="100" /> <rect x="30" y="53" width="10" height="97" /> <rect x="45" y="60 width="10" height="90" /> ……….. <rect x="120" y="10" width="10" height="140" /> <rect x="135" y="20" width="10" height="130" /> </g> </sgv> Ciclo
  • 16. CONTATTI TELEFONO 051 22 35 20 EMAIL WORKSHOP@VICEM.IT