# Grafica vettoriale

L'immagine vettoriale è rappresentata da un insieme di primitive geometriche. È radicalmente diversa dalle immagini raster, in quanto queste ultime vengono descritte come una griglia di pixel.

## Storia

* 1959 – Paul de Casteljau, mentre lavora alla Citroën, sviluppa un algoritmo per eseguire calcoli su una certa famiglia di curve, che in seguito sarebbe stato formalizzato e reso popolare dall'ingegnere Pierre Bézier, e le curve sarebbero state chiamate curve di de Casteljau o curve di Bézier. Tali curve appariranno solo dopo il 1970, per preservare all'interno delle rispettive aziende l'importante innovazione tecnologica.
* 1961 – Verne L. Hudson lavora con la grafica vettoriale 3D, usando un IBM 7090, schede perforate e un plotter a penna.
* 1970 – I terminali a scansione vettoriale richiedono un refresh costante dell'immagine, che purtroppo è gravoso per il computer e viene quindi affidato ad un hardware specifico. Per questa ragione, nei primissimi anni Settanta, vari ingegneri iniziano a sperimentare un adattamento dei tubi da TV (a scansione raster) a display per computer, assistiti da memorie meno costose e a più alta densità, e da microprocessori più economici.
* 1979 – Viene pubblicato Asteroids, un videogioco arcade che impiega la grafica vettoriale.
* 1980 – A partire dagli anni Ottanta, i display a grafica raster, che usano i "pixel" per comporre un'immagine, sostituiscono quasi del tutto i display a grafica vettoriale.
* 1984 – Insieme a MacWrite e MacPaint, Apple inserisce nella dotazione di software MacDraw, il primo programma di disegno vettoriale realmente WYSIWYG.
* 1986 – Entra in commercio il software Adobe Illustrator.
* 1988 – Entra in commercio il software Corel Draw.
* 1990 – Alla fine degli anni Novanta, il W3C sollecita ai vari produttori la presentazione di proposte per un formato standard e condiviso, che permetta di inserire i file vettoriali all'interno del codice di descrizione delle pagine, senza l'interposizione di plugin. Infine, deciderà di sviluppare SVG, che diverrà lo standard raccomandato per tutti i browser.
* 1998 – Entra in commercio il software Aldus Freehand.
* 2014 – Entra in commercio il software Affinity Designer.

## Il "vettore"
### Definizione matematica

Sono dette grandezze scalari, quelle che risultano completamente descritte da un numero, che ne rappresenta il valore. Il numero che definisce la misura di uno scalare viene indicato con il termine modulo, o più frequentemente intensità. Sono dette grandezze vettoriali, quelle che per essere definite necessitano, oltre che di un'intensità, anche di una direzione e di un verso. Le grandezze vettoriali sono rappresentate per mezzo di figure geometriche dette vettori, che sono segmenti orientati, simboleggiati tramite una freccia: il modulo (l'intensità) è identificato dalla lunghezza del segmento di freccia, la direzione dalla retta sulla quale esso giace e il verso dalla punta della freccia. Il punto da cui si origina il segmento orientato è detto origine.
Generalizzando, per vettore si può intendere qualunque n-pla ordinata di elementi di un campo $K$ (che può essere $\mathbb {R}$, l'insieme dei numeri reali, $\mathbb {C}$, l'insieme dei numeri complessi, o un qualunque altro campo di scalari). In tal senso, un vettore è una particolare matrice, è una matrice con una riga e n colonne è anche detta "vettore riga", mentre una matrice con n righe e una colonna è anche detta "vettore colonna".

### Applicazioni nella computer grafica

La grafica vettoriale si basa sulle descrizioni matematiche di primitive geometriche (punti, linee, curve parametriche, ecc.), sui relativi attributi di spessore e colore, nonché sulle operazioni algebriche e le trasformazioni geometriche (traslazioni, rotazioni, ridimensionamenti, ecc) che è possibile eseguire con i vettori e le matrici.
Nel caso si desideri disegnare un segmento di retta su un piano, si chiamino $P_{0}$ e $P_{1}$ i due punti di estremità. Il segmento sarà totalmente definito da due coppie di valori che ne indicano le coordinate $[xP_{0},yP_{0}]$ e $[xP_{1},yP_{1}]$ rispetto ad un punto di origine arbitrario e comune a tutte le entità del disegno. Se guardiamo la struttura delle due coppie di coordinate, vediamo che si possono considerare due vettori che giungono nel punto partendo dall'origine.

#### Esempio di trasformazione geometrica

Il formalismo dell'algebra lineare può essere utilizzato per esprimere molte delle operazioni necessarie per disporre gli oggetti in una scena 3D, visualizzarli con le telecamere e portarli sullo schermo. Trasformazioni geometriche quali rotazione, traslazione, ridimensionamento e proiezione possono essere realizzate con la moltiplicazione di matrici. Si pensi a un'immagine come un insieme di punti, i quali sono le estremità di vettori, le cui code sono all'origine degli assi cartesiani.
La trasformazione più semplice è il ridimensionamento uniforme (cioè che mantiene le proporzioni) lungo gli assi delle coordinate:${\text{scale}}(s_{x},s_{y})={\begin{bmatrix}s_{x}&0\\0&s_{y}\end{bmatrix}}$${\begin{bmatrix}s_{x}&0\\0&s_{y}\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}={\begin{bmatrix}s_{x}x\\s_{y}y\end{bmatrix}}$${\text{scale}}(0,5,0,5)={\begin{bmatrix}0,5&0\\0&0,5\end{bmatrix}}$Graficamente si otterrà questo:

## Grafica vettoriale e grafica raster

Confronto tra grafica vettoriale e grafica raster :
| Grafica vettoriale | Grafica raster |
| Le forme vengono modellate attraverso calcoli matematici. | Si basa sui pixel. |
| I programmi vettoriali sono i migliori per creare loghi, disegni e illustrazioni, disegni tecnici. Per immagini che saranno applicate a prodotti fisici. | I software per la grafica raster sono i migliori per l'editing di fotografie. |
| Le immagini vettoriali possono essere ingrandite o ridotte senza perdita di definizione. | Non si può ingrandire o ridurre ottimamente; l'immagine deve essere creata/scansionata alla dimensione desiderata o maggiore. |
| Le immagini vettoriali sono indipendenti dalla risoluzione: possono essere stampate a qualsiasi dimensione/risoluzione. | Le immagini raster hanno un numero totale di pixel (definizione) che determina le dimensioni stampa in base alla quantità di questi in un pollice (risoluzione). |
| Un'immagine vettoriale di dimensioni notevoli, occupa comunque poco spazio su disco. | Immagini raster di dimensioni e dettaglio notevoli occupano molto spazio su disco. |
| Il numero di colori può essere facilmente incrementato o ridotto per regolare il budget di stampa. | È più difficile stampare immagini raster usando un limitato numero di colori. |
| Opere d'arte vettoriali possono essere usate per molti processi e facilmente rasterizzate per essere usate per ogni processo. | Alcuni processi non possono impiegare formati raster. |
| Un'immagine vettoriale può essere facilmente convertita in un'immagine raster. | In base alla complessità dell'immagine, la conversione in vettoriale può fare perdere tempo. |
| Un'immagine vettoriale non è la più adatta per immagini a toni continui con mescolanze di colori, o per l'editing di fotografie. | Un'immagine raster è adatta per creare immagini a toni continui con morbide mescolanze di colori. |
| Formati di file comuni: AI, CDR, SVG, EPS, PDF. | Le immagini raster hanno i più comuni formati di immagine, tra cui: JPEG, GIF, BMP, PSD, EPS, PDF. |
| Software vettoriali comuni: Adobe Animate, Figma, CorelDraw, Inkscape. | Software raster comuni: Adobe Photoshop, Paint Shop, GIMP. |

## Primitive

Più o meno tutti i formati di file vettoriali supportano primitive semplici e dal rendering rapido come:
* Linee, polilinee e poligoni
* Curve di Bézier e bezigon
* Cerchi ed ellissi
Molti formati di file vettoriali supportano:
* Testo
* Gradienti di colore
* Spesso, un'immagine bitmap è considerata un oggetto primitivo
Pochi formati di file supportano oggetti più complessi come:
* Catmull-Rom splines
* NURBS
* Iterated function systems
* Superellissi e superellissoidi
* Metaball
* Altri oggetti

## Utilizzi

La grafica vettoriale ha un notevole utilizzo nell'editoria, nell'architettura, nell'ingegneria e nella grafica realizzata al computer. Tutti i programmi di grafica tridimensionale salvano i lavori definendo gli oggetti come aggregati di primitive matematiche. Nei personal computer l'uso più evidente è la definizione dei font. Quasi tutti i font utilizzati dai personal computer vengono realizzati in modo vettoriale, per consentire all'utente di variare la dimensione dei caratteri senza perdita di definizione.
La grafica vettoriale è stata impiegata fino agli anni Ottanta nei primi terminali grafici ad uso professionale come la famiglia 40XX Tektronix, o nel caso dei videogiochi in vecchie macchine arcade come Asteroids e nella console Vectrex. È ormai stata abbandonata nel campo dell'hardware video, a causa dell'abbattimento dei costi delle memorie RAM.