Matematica e Informatica: dietro le quinte della grafica al calcolatore
|
|
- Raimondo Ferro
- 8 anni fa
- Visualizzazioni
Transcript
1 Matematica e Informatica: dietro le quinte della grafica al calcolatore Giulio Casciola Dipartimento di Matematica Università di Bologna casciola@dm.unibo.it
2 Motivazioni Matematica e Informatica Insegnare la Matematica sull onda dell Informatica Fare emergere lo spirito applicativo della matematica Fare acquisire competenze di problem solving Stimolare i ragazzi e farli ragionare Scoprire la matematica nelle cose che usiamo tutti i giorni
3 Grafica al Calcolatore Vector vs Raster: esempi Sommario La Matematica per disegnare con il calcolatore Disegno di Linee: algoritmo Incrementale e di Bresenham Disegno di curve di Bézier Un algoritmo di Rasterizing Un algoritmo di Tracing per Bitmap Un algoritmo di Color Tracing Conclusioni
4 Grafica al Calcolatore un disegno (o immagine) su un Display Raster Scan viene generato punto per punto un elemento, punto o pixel è l unità elementare di disegno disegnare consiste nel modificare l informazione intensità luminosa di ogni pixel del Display CPU Devices System Bus RAM Frame Buffer GPU CRT
5 GPU (Graphics Processor Unit) Frame Buffer Indirizzo x Indirizzo y Valore pixel Generatore Raster Scan Deflessione Intensità CRT Video Controller while (true) for (y=0; y<n; y++) for (x=0; x<m; x++).. A sistema funzionante, per accendere un pixel nella posizione (x,y), sarà sufficiente inserire nella corrispondente posizione del Frame Buffer, l informazione 1 (acceso in un sistema monocromatico). Tutti i sistemi grafici possiedono una funzione per far questo.
6 Grafica al Calcolatore Chiameremo la funzione per disegnare un pixel: draw_point(x,y,col) i parametri x ed y rappresentano le coordinate schermo del punto che vogliamo disegnare in un sistema Cartesiano a coordinate intere (per es. [0,1023]x[0,767] da cui risoluzione 1024x768); il parametro col rappresenta il colore con cui vogliamo disegnare il punto; Il modo usualmente adottato per disegnare curve o immagini è, come detto, punto per punto, ed in particolare ogni punto consecutivamente all altro.
7 Grafica al Calcolatore Ci sono due modi per definire un'immagine su calcolatore: modalità Raster: cioè una matrice di valori interi di intensità associata alla matrice dei pixel che costituiscono l'immagine; modalità Vector: descrizione matematica delle curve che separano le regioni di differente colore (outline); Raster Vector Le immagini vettoriali sono scalabili, le immagini raster no.
8 Vector vs Raster I principali vantaggi della grafica vector rispetto alla grafica raster sono la qualità, la maggior compressione dei dati e la più facile gestione delle eventuali modifiche. Le immagini raster sono ideali per rappresentare foto (real life images), o per simulare il colore di materiali (texture); Le immagini vettoriali, risultano migliori per tutti gli altri scopi. La maggior parte dei dispositivi come monitor, stampanti a matrici di punti e stampanti laser, sono dispositivi Raster. Ciò significa che tutti gli elementi prima di essere inviati a tali dispositivi (disegnati) devono essere trasformati in raster.
9 Un esempio: i font digitali Un font, ovvero un tipo di carattere informatico, è una collezione indicizzata di glifi contenente informazioni su come associarvi un particolare codice, visualizzarli in differenti dimensioni e stamparli correttamente. Solitamente un font contiene le lettere alfabetiche, numeri e segni di punteggiatura. I font esistono anche come ideogrammi e simboli (come ad esempio, formule matematiche, note musicali o simboli geografici). Ci sono due tipi di font digitali: Bitmap font: consiste in una matrice di pixel rappresentante l immagine di un glifo; Outline font: consiste in una descrizione di livello superiore delle curve che racchiudono lo spazio di un glifo;
10 Font Forge FontForge è un software libero OpenSource e licenza GPL che permette la creazione e modifica di font in molti formati standard.
11 Un esempio: le bitmap Le bitmap sono immagini in bianco e nero tipicamente memorizzate e rappresentate in modalità raster. Per quanto detto sui vantaggi della grafica vector, spesso è utile convertire una bitmap in modalità vector. Quando un immagine è in formato vector, per visualizzarla su un display o stampante è necessario riconvertirla in formato raster. Il procedimento di conversione di un'immagine raster in una vector è detto tracing (o vectorizing) mentre il viceversa è detto rasterizing. La Linea
12 Una dimostrazione pratica Dimostrazione con Acrobat Reader 7.08
13 Un esempio: SVG SVG (Scalable Vector Graphics) è un formato di grafica vettoriale, prodotto dal W3C (World Wide Web Consortium) consorzio noprofit che si occupa degli standard WEB. Il sorgente di un file SVG è puro testo XML, ed è quindi componibile modularmente con qualsiasi altra applicazione XML. Come linguaggio XML può essere processato con i tradizionali tool XML come parser, validatori, editor, e browser (SVG è già supportato dalle attuali versioni di browser in modo nativo o mediante appositi plug-in). SVG è anche utilizzato per cellulari e palmari.
14 InkScape InkScape è un software libero OpenSource e licenza GPL per il disegno vettoriale basato sul formato SVG.
15 La Matematica per il disegno Linea per due punti: siano p 0 =(x 0,y 0 ) e p 1 =(x 1,y 1 ); p 0 L(t) = (1 - t) p 0 + t p 1 y t p 1 t t R ( retta) [0,1] ( segmento) x 0 1 t Se poniamo dx = x 1 -x 0,dy= y 1 -y 0 e d=(dx,dy) si può scrivere L(t) = p 0 + t d oppure x(t) = x 0 + t dx y(t) = y 0 + t dy
16 Algoritmo di de Casteljau Il matematico francese Paul de Casteljau, negli anni 60, diede una definizione algoritmica di curva in forma parametrica basata su interpolazioni lineari successive a partire da n+1 punti. Il risultato è una curva che interpola il primo ed ultimo punto assegnati e approssima in forma gli altri. p 3 p 2 p 0 p 1
17 Algoritmo di de Casteljau p 1 Sia n=2, cioè 3 punti L L 0 1 ( t) ( t) Q( t) = = (1 t) p = (1 t) p 1 0 (1 t) L + tp + tp 0 = (1 t) ( t) 2 p tl = (1 t)((1 t) p 1 ( t) 0 + tp p (1 t) tp ) + t((1 t) p 1 L 0 ( t ) + t 2 p 2 1 Q( t ) 0 t tp 2 ) L 1 ( t ) p 2 t R ( curva), t [0,1] ( tratto _ di _ curva)
18 Algoritmo di de Casteljau Sia n=3, cioè 4 punti 1 t t p 1 p 2 1 t t t 1 t 1 t 1 t t C( t ) 1 t t P 0 P 1 P 2 1 t 1 t 1 t t t t L 0 (t) ( 1 t ) P + tp L 1 (t) ( 1 t ) P + tp 0 1 L 2 (t) 2 p 0 ( 1 t ) P + tp t 1 t t t 0 t (1 + t 2 (1 + t 2 t ) P t ) P Q 0 (t) P P (1 Q 1 (t) t ) tp + 2 (1 t ) tp 1 2 t R t t 1 t + t + + ( curva), (1 3 (1 3 3 t ) t ) (1 t ) t t P C(t) p 3 tp 2 P 0 P 1 2 P 3 t [0,1] ( tratto _ di _ curva)
19 Algoritmo di de Casteljau Siano dati Pi i = 0,.., n e t [0,1] Algoritmo: P [k] i (t) = (1 t)p [k 1] i (t) + tp [k 1] i+ 1 (t) dove k = 1,..,n i = 0,..,n -k [0] i P (t) = p 0 P i [1] P 0 p 1 p 2 [1] P 1 [2] P [3] 0 P [2] 0 P 1 C( t ) [1] P 2 Risultato: P [n] 0 C(t) p 3
20 Valutazione punti della curva via Algoritmo di de Casteljau La definizione di de Casteljau è un algoritmo numericamente stabile per il calcolo di punti della curva modificato
21 Algoritmo di de Casteljau e base di Bernstein La base associata all algoritmo di de Casteljau è la ben nota base polinomiale di Bernstein: B dove B i, n i, n con ( ( t) B t n i ) = tbi 1, n 1( t) + (1 t) Bi, n 0,0 n = (1 t ) i = ( t) i! Definizione ricorsiva: = ( n! n 1 e i B )! i, n ( t) = n i 0 i t i 1 t [0,1] ( t) [0, n]
22 Caso grado n=3 Polinomi base di Bernstein 3 B 0, 3(t) = ( 1 t) 2 B, (t) = 3( -t) t B, = 2 3(t) ( 1 B, = 3 3 3(t) t 3 -t)t 2 B 0,3 B B 1,3 2, 3 B 3,3 t [0,1]
23 Le Curve di Bézier L ingegnere francese Pierre Bézier, negli anni 60, indipendentemente da de Casteljau, diede la seguente definizione di curva in forma parametrica. Siano dati i punti P i i=0,,n allora B i,n (t) P(t) PB (t) dove sono i polinomi base di Bernstein; = n i= 0 Si noti che ogni termine nella somma è il prodotto di una funzione polinomiale B i,n (t) per il punto P i detto punto di controllo. i i,n t [0,1] Esempio per n=3: P ( t ) i 3 = = 0 P i 3 i (1 t ) 3 i t i
24 Valutazione punti curva di Bézier via Algoritmo di de Casteljau La definizione di de Casteljau è anche un algoritmo numericamente stabile per il calcolo delle curve di Bézier.
25 Le Curve di Bézier Proprietà: 1.P(t) t [0,1] giace nel guscio convesso definito dai suoi punti di controllo; 2.P(0)=P 0 e P(1)=P n ; 3.P (0)=n(P 1 -P 0 ) e P (1)=n(P n -P n-1 ) ; 4.P(t) è invariante per trasformazioni affini; in particolare per traslazione, scala, rotazione e deformazione lineare (shear); 5.P(t) è approssimante in forma della poligonale di controllo. P 1 P 2 P 0 P 3
26 Le Curve di Bézier e la Suddivisione La definizione o algoritmo di valutazione di de Casteljau di una curva di Bézier fornisce anche i punti di controllo delle curve di Bézier corrispondenti agli intervalli [ 0,t] ˆ e [t, ˆ1. ] Vediamolo nel caso n=3: P0 P1 P2 P P1 P2 P 0 3 P 0 [1] P 0 [1] P1 P 1 P2 [2] P 0 [2] P 1 [3] P 0 [1] P 2 2 P 0 P 1 2 (1-t) t P 3 3 P 0 3 P(t) = Pi Bi, 3(t) t [ 0, 1] i= 0 0 = 3 i= 0 3 i= 0 i P0 B i, 3 3-i i 3 P Bi, (t) (t) t [ 0,t] ˆ t [t, ˆ1]
27 Curve di Bézier a tratti Nelle applicazioni, una curva complessa viene rappresentata con più curve di Bezier di grado 3 (o 2) raccordate fra loro con continuità C 0, C 1 o G 1, ecc. Date due curve di Bézier di punti di controllo rispettivamente P i e Q i, diremo che si raccordano: P 1 P 2 C 0 se P n = Q 0 C 1 se (P n P n-1 ) = (Q 1 Q 0 ) G 1 se (P n P n-1 ) = K (Q 1 Q 0 ) C 2.. G 2.. Q 0 P 3 n=3 Q 3 P 0 Curve di Bézier così raccordate vengono dette curve di Bézier a tratti. Q1 Q2
28 Esempi di Curve di Bézier a tratti g S Font Times New Roman
29 Esempi di Curve di Bézier a tratti Font Computer Modern
30 Esempi di Curve di Bézier a tratti Trasformazioni geometriche di curve
31 Una dimostrazione pratica Dimostrazione con InkScape 0.47
32 Disegno di Punti, Linee e Curve Abbiamo già visto in cosa consiste la primitiva di disegno di un singolo punto draw_point(x,y,col) Ma come si disegna una curva (di Bézier) su un display raster di un calcolatore? Affrontiamo prima il disegno di Linee (segmenti di retta) e poi di Curve.
33 Disegno di Linee Dati due punti (P 0, P 1 ) sullo schermo (a coordinate intere) determinare quali pixel devono essere disegnati per visualizzare il segmento retto (linea) che loro definiscono. P 1 P 0
34 Disegno di Linee Dati due punti (P 0, P 1 ) sullo schermo (a coordinate intere) determinare quali pixel devono essere disegnati per visualizzare il segmento retto (linea) che loro definiscono. P 1 P 0
35 Disegno di Linee Dati due punti (P 0, P 1 ) sullo schermo (a coordinate intere) determinare quali pixel devono essere disegnati per visualizzare il segmento retto (linea) che loro definiscono. P 1 P 0
36 Disegno di Linee Perché vengono disegnati questi pixel e non anche altri? P 1 P 0
37 Disegno Continuo a Pixel Si vuole procedere ad accendere pixel adiacenti per simulare un disegno continuo. Questo porta ad una definizione di pixel adiacenti; ci sono due differenti modi: 4-connected 8-connected
38 Linee Speciali - Orizzontale
39 Linee Speciali - Orizzontale Incrementa la x di 1, tenendo la y constante
40 Linee Speciali - Verticale
41 Linee Speciali - Verticale Tieni la x constante e incrementa la y di 1
42 Linee Speciali - Diagonale
43 Linee Speciali - Diagonale Incrementa la x di 1 e incrementa la y di 1
44 Come si procede per Linee Generiche?
45 Algoritmo di Linea Incrementale Sia L(t)= P 0 + (P 1 P 0 ) t con t [0, 1] l'espressione in forma parametrica del segmento di estremi P 0 =(x 0,y 0 ) e P 1 =(x 1,y 1 ). Dalla forma esplicita: x = x 0 +(x 1 x 0 )t y = y 0 +(y 1 y 0 )t t [0, 1] si possono determinare punti del segmento per opportuni valori del parametro; il numero di punti è dato dal numero di pixel necessari per rappresentare 8-connected il segmento. Algoritmo: n=max(abs(x1-x0),abs(y1-y0)) dx=(x1-x0)/n dy=(y1-y0)/n for ( i=0; i<=n; i++) { x=x0+i*dx y=y0+i*dy draw_point(round(x),round(y),col) } int round(float a) { int k; k=(int)(a + 0.5); return k; }
46 Algoritmo di Linea Incrementale Il metodo incrementale consiste nel determinare le coordinate del nuovo punto da quelle del punto precedente, anziché dall'espressione parametrica: x i+1 = x 0 + (i + 1) dx x i = x 0 + i dx sottraendo si ha: x i+1 = x i + dx; (analogamente y i+1 = y i + dy). Algoritmo: n=max(abs(x1-x0),abs(y1-y0)) dx=(x1-x0)/n dy=(y1-y0)/n x=x0 y=y0 draw_point(x,y,col) for (i=1; i<=n, i++) { x=x+dx y=y+dy draw_point(round(x),round(y),col) }
47 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) sarà: n=6, dx=1 dy y = y x x = = (6,4) (0,2)
48 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (6,4) (0,2)
49 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (6,4) (0,2)
50 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (2,2.666) --> (2,3) (6,4) (0,2)
51 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (2,2.666) --> (2,3) (3,3.000) --> (3,3) (0,2) (6,4)
52 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (2,2.666) --> (2,3) (3,3.000) --> (3,3) (4,3.333) --> (4,3) (0,2) (6,4)
53 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (2,2.666) --> (2,3) (3,3.000) --> (3,3) (4,3.333) --> (4,3) (5,3.666) --> (5,4) (0,2) (6,4)
54 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (6, 4) n=6, dx=1, dy=1/ > (0,2) (1,2.333) --> (1,2) (2,2.666) --> (2,3) (3,3.000) --> (3,3) (4,3.333) --> (4,3) (5,3.666) --> (5,4) (6,4.000) --> (6,4) (0,2) (6,4)
55 Algoritmo di Linea Incrementale: : note Operazioni aritmetiche floating point Arrotondamento (funzione round( ) ) Si può fare meglio?
56 Algoritmo di Linea di Bresenham Si procede alla descrizione dell algoritmo facendo uso del metodo dei due punti nel caso 8-connected. Senza perdere in generalità, limiteremo la trattazione a segmenti di estremi P 0 =(0,0) e P 1 =(a,b) con a,b N, a b 0 (pendenza 1). Una semplice simmetria e traslazione permetterà di considerare segmenti negli altri ottanti e con estremi qualunque. y P 1 =(a,b) P 0 =(0,0) x
57 Algoritmo di Linea di Bresenham Dato un punto disegnato del segmento,, per le ipotesi in cui ci siamo messi, basterà determinare se il successivo punto (8- connected) sarà in posizione Est (E) o NordEst(NE)
58 Algoritmo di Linea di Bresenham Dato un punto disegnato del segmento,, per le ipotesi in cui ci siamo messi, basterà determinare se il successivo punto (8- connected) sarà in posizione Est (E) o NordEst(NE) Il punto a E, sia C=(x+1,y), è più vicino o più lontano di quello a NE, sia B=(x+1,y+1), dalla linea? se è più vicino C: muovi verso Est se è più vicino B: muovi verso Nord Est B C
59 Algoritmo di Linea di Bresenham Sia f(x,y) = bx ay = 0 l equazione della retta passante per (0,0) e (a,b) con a,b N, a b 0 Noto il pixel (x i,y i ) che al passo i-esimo meglio approssima il segmento, il metodo dei due punti sceglie al passo (i+1)-esimo fra i pixel B=(x i +1, y i +1) e C=(x i +1, y i ). y i +1 B y i C x i x i +1 I valori f(b) e f(c) vengono presi come indicatori lineari di quanto i pixel/punti B e C siano lontani dalla retta.
60 Algoritmo di Linea di Bresenham Infatti, sia f(x,y) = ax + by + c = 0 l equazione di una retta del piano. La distanza d di un punto (x,y ) dalla retta f(x,y)=0 è data da f(x,y ) d = ± a 2 + b 2 Da cui il valore di f(x,y ) è proporzionale a d. Per valutare, dati due punti B e C, chi è meno distante dalla retta f(x,y)=0 è sufficiente confrontare f(b) ed f(c) in valore assoluto. se f(b) < f(c) allora pixel B altrimenti pixel C od anche: se f(b) + f(c ) 0 allora pixel B altrimenti pixel C B C
61 Algoritmo di Linea di Bresenham Sostituendo le coordinate di B=(x i +1, y i +1) e C=(x i +1, y i ) nell espressione della f(x,y) = bx ay, si ha: f(c) + f(b) = = b (x i +1) a y i + b (x i +1) a (y i +1) = 2 b (x i +1) 2 a y i -a Si definisce d i, discriminatore per il passo (i+1)-esimo, come: d i = 2 b (x i +1) 2 a y i -a
62 Algoritmo di Linea di Bresenham Algoritmo: x=0 y=0 draw_point(x,y,col) for (i=1; i<=a; i++) { x=x + 1 d=2*b*x 2*a*y a if (d 0) y=y + 1 draw_point(x,y,col) } Questo segmento di codice comporta, per ogni pixel, il calcolo del discriminatore; sebbene tutti i calcoli siano in aritmetica intera, la valutazione del discriminatore è pesante. Si cerca un metodo per determinare il valore del discriminatore al passo (i+1)-esimo utilizzando il valore del discriminatore al passo i-esimo.
63 Algoritmo di Linea di Bresenham Caso 1: al passo i-esimo sia d i 0 e quindi si debba scegliere B=(x i +1,y i +1) (x i+1 +1,y i+1 +1) B (x i+1 +1,y i+1 ) Allora: (x i,y i ) d i+1 = f(x i+1 +1,y i+1 +1) + f(x i+1 +1,y i+1 ) = b(x i+1 +1) - a(y i+1 +1) + b(x i+1 +1) - ay i+1 = b(x i +1) + b - ay i - 2a + b(x i +1) + b - ay i -a = 2b(x i +1) - 2ay i a + 2b - 2a = d i + 2b - 2a d i+1 = d i + 2b - 2a
64 Algoritmo di Linea di Bresenham Caso 2: al passo i-esimo sia d i < 0 e quindi si debba scegliere C=(x i +1,y i ) (x i+1 +1,y i+1 +1) (x i,y i ) C (x i+1 +1,y i+1 ) Allora: d i+1 = f(x i+1 +1,y i+1 +1) + f(x i+1 +1,y i+1 ) = b(x i+1 +1) - a(y i+1 +1) + b(x i+1 +1) - ay i+1 = b(x i +1) + b - ay i -a + b(x i +1) + b ay i = 2b(x i +1) - 2ay i a + 2b = d i + 2b d i+1 = d i + 2b
65 Algoritmo di Linea di Bresenham Al passo i=0, essendo x=y=0, dall espressione del discriminatore si ha: d 0 = 2b -a Algoritmo: x=0 y=0 ince=2*b d=ince-a incne=d-a draw_point(x,y,col) for (i=1; i<=a; i++) { x=x + 1 if (d<0) d=d+ince else { d=d+incne y=y + 1 } draw_point(x,y,col) } Si noti, che vengono effettuate solo addizioni e sottrazioni fra interi e moltiplicazioni per 2 (shift di bit)
66 Algoritmo di Linea di Bresenham void qoriz(int x, int y, int dx, int dy, int sx, int sy, int col) { int i,d,ince,incne; ince=2*dy; d=ince-dx; incne=d-dx; draw_point(x,y,col); for (i=1; i<=dx; i++) { x=x+sx; if (d<0) d=d+ince; else { d=d+incne; y=y+sy; } draw_point(x,y,col); } } void qvert(int x, int y, int dx, int dy, int sx, int sy, int col) { int i,d,ince,incne; ince=2*dx; d=ince-dy; incne=d-dy; draw_point(x,y,col); for (i=1; i<=dy; i++) { y=y+sy; if (d<0) d=d+ince; else { d=d+incne; x=x+sx; } draw_point(x,y,col); } }
67 Algoritmo di Linea di Bresenham void draw_line(int x0, int y0, int x1,int y1, int col) { int dx, dy, temp, sx, sy; if (y0<y1) { temp=x0; x0=x1; x1=temp; temp=y0; y0=y1; y1=temp; } dx=x1-x0; sx=sgn(dx); dx=abs(dx); sy=-1; dy=y0-y1; if (dy<=dx) qoriz(x0,y0,dx,dy,sx,sy,col); else qvert(x0,y0,dx,dy,sx,sy,col); } int sgn(int n) { int sn; } if (n>0) sn=1; else if (n<0) sn=-1; else sn=0; return(sn);
68 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d -2 (6,2) (0,0)
69 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
70 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
71 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
72 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
73 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
74 Algoritmo di Linea di Bresenham: : Esempio Esempio: segmento di estremi (0,0) e (6,2); sarà a=6, b=2, ince=4, d= - 2, incne= - 8. i d (0,0) (6,2)
75 Algoritmo di Linea di Bresenham: : note Solo operazioni aritmetiche fra interi Più precisamente addizioni, sottrazioni e shift di bit (moltiplicazioni per 2) Si estende ad altri tipi di forme (circonferenza, coniche,, ma non ad una generica curva polinomiale)
76 Disegno di Curve di Bézier Un algoritmo di disegno di una curva di Bézier, per essere efficiente, deve determinare una lineare a tratti approssimante la curva stessa con precisione al pixel. Questa verrà disegnata richiamando ripetutamente la primitiva grafica linea che a sua volta richiamerà la primitiva grafica punto. Curva di Bezier 8 connected
77 Disegno di Curve di Bézier via Suddivisione Nel caso n=3, le formule per la determinazione dei punti di controllo della suddivisione quando t ˆ = 1/ 2 sono date da: 0 P 0 3 = P P 0 = P P 0 0 P1 P2 P3 1 P2 + P3 P 1 P0 + P 2 = P0 = 2 P0 P1 P P1 + P2 P2 P 1 = P0 P1 + P P0 = + P 0 P 1 [1] 2 4 P1 P 1 P P0 + P [2] 1 P0 = P 0 [1] P 0 [2] P 2 0 P 1 [3] P 0 [1] P 2 P 0 P 3 Suddivisioni ripetute produrranno una sequenza di punti di controllo sempre più prossimi alla curva
78 Disegno di Curve di Bézier Allo scopo di visualizzare graficamente una curva di Bèzier, risulta efficiente suddividerla ricorsivamente nel punto ˆt = 1/2 fino a che ogni tratto sia approssimato da un segmento retto ad una precisione fissata. Il criterio di arresto può essere basato su un test di linearità applicato al guscio convesso. P 3 P 1 P 2 dist(p,p P ) < tol 1 0 and dist(p,p P ) < tol P 0
79 Disegno di Curve di Bézier Algoritmo Ricorsivo void draw_bez(int *n, float x0, float y0, float x1, float y1, float x2, float y2, float x3,float y3, int col) { float xab,yab,xbc,ybc,xcd,ycd,xabc,yabc,xbcd,ybcd,xabcd,yabcd; if (bez_test(x0,y0,x1,y1,x2,y2,x3,y3)) { draw_line(round(x0),round(y0),round(x3),round(y3),col); end_points_x[*n] = round(x0); end_points_y[*n] = round(y0); (*n)++; } else { xab = 0.5*(x0+x1); yab = 0.5*(y0+y1); xcd = 0.5*(x2+x3); ycd = 0.5*(y2+y3); xbc = 0.5*(x1+x2); ybc = 0.5*(y1+y2); xabc = 0.5*(xab+xbc); yabc = 0.5*(yab+ybc); xbcd = 0.5*(xbc+xcd); ybcd = 0.5*(ybc+ycd); xabcd = 0.5*(xabc+xbcd); yabcd = 0.5*(yabc+ybcd); draw_bez(x0,y0,xab,yab,xabc,yabc,xabcd,yabcd,col); draw_bez(xabcd,yabcd,xbcd,ybcd,xcd,ycd,x3,y3,col); } }
80 Disegno di Curve di Bézier Algoritmo Ricorsivo int bez_test(float x0, float y0, float x1,float y1, float x2, float y2, float x3,float y3) { float dmax; float nx,ny,norm_n; nx = y0-y3; ny = x3-x0; norm_n = sqrt( nx*nx + ny*ny ); dmax = abs( (nx*(x1 - x0) + ny*(y1 - y0) )/norm_n); dmax = max(dmax, abs( (nx*(x2 - x0) + ny*(y2 - y0) )/norm_n) ); if(dmax > 0.5) // tolleranza al pixel return(0); else return(1); } In conclusione l algoritmo di disegno di una curva di Bézier determina e disegna una lineare a tratti approssimante la curva al pixel. Quest ultima può essere disegnata richiamando ripetutamente la primitiva grafica linea.
81 Sul Test di Linearità Nell ottica di avere un test di linearità più robusto rispetto al bez_test esposto si può considerare il test di linearità proposto da R.Willcocks autore di RoPS PostScript Interpreter. Infatti come si comporterebbe il nostro test sulla seguente curva degenere di Bezier? P 1 P 0 P 3 P 2 Se la chiamata a dist(p1,p0 P 3 ) ritorna la distanza del primo punto P 1 dalla retta definita dagli altri due, il test darà esito positivo e verrà disegnato il segmento P 0 P 3!!!
82 Le Curve Subdivision Il principio sui cui si basa uno schema Subdivision è molto semplice. Sia dato un insieme di punti del piano; in ogni passo di suddivisione viene generato un insieme di punti doppio del precedente. Ogni nuovo punto viene calcolato usando una regola locale. Ripetute applicazioni del processo di suddivisione portano ad un insieme sempre più denso di punti che definiscono una curva continua e regolare. Si noti che Subdivision è un metodo discreto e non è detto che esista una rappresentazione matematica della curva così definita. Questo non deve essere visto come uno svantaggio, infatti per esempio nella grafica, il risultato finale deve essere visualizzato su un display e questo implica che ogni dettaglio più piccolo di un pixel venga scartato.
83 Lo schema di Chaikin ( k + 1) 1 p2i 1 = p 4 ( k + 1) 3 p2i = p 4 k = 0,1,... i ( k ) i 1 ( k ) i p p ( k ) i ( k ) i+ 1 (0) p i 1 3 : 1 (0) p i 1 : 3 (0) p i+1 ( k + 1) ( k ) P = SP
84 Lo schema di Chaikin
85 Lo schema di Chaikin 3 : 1 1 : 3
86 Lo schema di Chaikin
87 Lo schema di Chaikin
88 Lo schema di Chaikin
89 Lo schema di Chaikin
90 Lo schema di Chaikin Punto di Controlo Curva Limite Curva Spline Quadratica Poligono di Controllo
91 Un algoritmo di Rasterizing Dato un poligono in coordinate schermo, la sua rasterizzazione consiste nel disegnare con un colore tutti i pixel del poligono (i pixel interni o sui lati del poligono). L idea base dell algoritmo che descriveremo è determinare i pixel del poligono una riga (scanline) alla volta scanline 8
92 Un algoritmo di Rasterizing L algoritmo di rasterizzazione si può sintetizzare nei seguenti passi: 1. Trovare l intersezione della scanline con tutti i lati del poligono x x x x scanline 8
93 Un algoritmo di Rasterizing L algoritmo di rasterizzazione si può sintetizzare nei seguenti passi: 1. Trovare l intersezione della scanline con tutti i lati del poligono 2. Ordinare le intersezioni secondo le ascisse x x 2 x x scanline 8
94 Un algoritmo di Rasterizing L algoritmo di rasterizzazione si può sintetizzare nei seguenti passi: 1. Trovare l intersezione della scanline con tutti i lati del poligono 2. Ordinare le intersezioni secondo le ascisse 3. Accendere i pixel della scanline fra coppie di intersezioni scanline 8 Nell esempio la lista ordinata delle ascisse è: (2, 5, 8, 13); si accenderanno quindi i pixel da 2 a 5 e da 8 a 13.
95 Un algoritmo di Rasterizing Osservazioni sulla fase di intersezione: i segmenti orizzontali vengono scartati perché non producono intersezioni; i lati vengono accorciati per garantire che ogni scanline intersecata con tutti i lati fornisca un numero pari di intersezioni (teorema di Jordan); utilizzo dell algoritmo di Linea incrementale per determinare le intersezioni in modo semplice I lati siano definiti da (x 0,y 0 ) e (x 1,y 1 ) e (x 0,y 0 ) sia sempre l estremo con ordinata maggiore, allora: n=y 1 -y 0 (numero di scanline 1) m=n/(x 1 -x 0 ) (pendenza) dx=1/m dy= -1 x i+1 = x i + dx y i+1 = y i + dy
96 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (5, 5) sia: dy=1, n=3 dx x = x y y = = (5,5) (0,2)
97 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (5, 5) n=3, dy=1, dx=1.6 (0,2) (5,5) (0,2)
98 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (5, 5) n=3, dy=1, dx=1.6 (0,2) (1.6,3) (2,3) (5,5) (0,2)
99 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (5, 5) n=3, dy=1, dx=1.6 (0,2) (1.6,3) (2,3) (3.3,4) (3,4) (5,5) (0,2)
100 Algoritmo di Linea Incrementale: esempio P 0 = (0, 2) P 1 = (5, 5) n=3, dy=1, dx=1.6 (0,2) (1.6,3) (2,3) (3.3,4) (3,4) (5,5) (5,5) (5,5) (0,2)
101 ET Un algoritmo di Rasterizing Per implementare l algoritmo faremo uso di due strutture dati: Edge Table (ET): contiene le informazioni sui lati secondo la loro ordinata maggiore; Active Edge Table (AET): contiene la situazione dell intersezione fra la scanline corrente e i lati del poligono, così che sia facile determinare la sequenza dei pixel da disegnare. Ymin Xmax 1/m / / / Ymin X 1/m / AET /
102 Un algoritmo di Rasterizing Una volta costruito l ET, i passi dell algoritmo sono: 1.Porre Y alla più grande ordinata dell ET; 2.Inizializzare l AET a vuoto; 3.Ripetere fino a che l AET o l ET sono vuoti: 3.1 muovere l informazione relativa a Y dall ET all AET, mantenendo l AET ordinato sulle X; 3.2 disegnare sulla scanline Y i pixel utilizzando coppie di ascisse dall AET; 3.3 rimuovere dall AET quelle informazioni per cui Y=Ymin; 3.4 per ciascuna informazione rimasta nell AET, aggiornare X con X+1/m; 3.5 ordinare l AET in base alle ascisse; 3.6 Y=Y-1;
103 Simulazione dell Algoritmo
104 Simulazione dell Algoritmo
105 Esempi di Rasterizing di Curve di Bézier a tratti
106 Esempi di Rasterizing di Curve di Bézier a tratti Bitmap: 736x815 pixel Bitmap: 640x801 pixel Bitmap: 672x777 pixel
107 Esempi di Rasterizing di Curve di Bézier a tratti Bitmap: 672x777 pixel Trova le differenze!
108 Un algoritmo di Tracing L'algoritmo di tracing chiamato Potrace si compone di 4 fasi: 1. Decomposizione dell'immagine in path 2. Ricerca dei poligoni ottimali di approssimazione dei path 3. Approssimazione dei poligoni con curve 4. Ottimizzazione delle curve outline Bitmap 34x25
109 Un algoritmo di Tracing: : fase 1 Si definisce path p la sequenza dei vertici dei pixel che compongono un contorno dell immagine: p={v 1,..,v n }, dove i vertici v i =(x i,y i ) sono a coordinate intere. In questa fase si procede a: isolare i path chiusi dell immagine (il primo vertice coincide con l ultimo) risolvere i casi di decomposizione ambigua eliminare il rumore dell immagine (despeckling) Tre path vertice pixel
110 Un algoritmo di Tracing: : fase 2 Costruire un poligono ottimale di approssimazione per ogni singolo path. si definisce poligono di approssimazione di un path p={v 1,..,v n }, un poligono con vertici in p, i cui lati v i v j sono segmenti retti che approssimano il sottopath s={v i,..,v j } ad ogni possibile lato v i v j si associa una penalità P ij che indica l errore commesso nell approssimare il sottopath s si applica un algoritmo di cammino minimo (teoria dei grafi) per minimizzare lessicograficamente la coppia (n,p), con n numero di lati del poligono di approssimazione e P la penalità totale dei suoi lati. Poligono ottimale a coord. intere
111 Un algoritmo di Tracing: : fase 2 Il poligono ottimale a vertici interi viene ulteriormente ottimizzato in modo che: i nuovi vertici v i abbiano distanza uniforme dagli originali v i : d(v i,v i ) 1/2 i lati v i v j siano di miglior approssimazione dei sottopath s={v i,..,v j } Poligono ottimale
112 Una classe di Cubiche di Bézier Sia data una cubica di Bézier C(t) con punti di controllo P 0, P 1, P 2 e P 3 ; allora C(t) è una cubica simmetrica e convessa se e solo se: I prolungamenti retti di P 0 P 1 e P 2 P 3 si incontrano in un unico punto Q; Il cambio di direzione totale di C(t) è inferiore a 180 ; Convessità: P 1 sta sul segmento P 0 Q e P 2 su QP 3 Simmetria: d(p 0,P 1 )/d(p 0 Q) = d(p 2,P 3 )/d(p 3 Q) = def α Q P 2 P 1 P 3 Proprietà: 0 < α 1 C(t) resta univocamente def. da: α, P 0, Q, P 3 P 0
113 Un algoritmo di Tracing: : fase 3 In questa fase si approssima il poligono ottimale, i cui vertici chiameremo ancora v i,, con una curva cubica di Bézier simmetrica e convessa a tratti. Per l esattezza si chiamino b i i punti medi dei lati v i v i+1 e ogni sottopoligonale b i-1 v i b i venga approssimata con una curva cubica di Bèzier di estremi b i-1 e b i e tangenti negli estremi definite dai segmenti b i-1 v i e v i b i. v i-1 b i-1 v i b i v i+1 (a) 0.55 α 1 (b) α < 0.55 (c) α > 1
114 Un algoritmo di Tracing: : fase 3 In base al parametro 0<α 1, che stima la distanza fra il segmento b i-1 b i e la retta l i a lui parallela e passante per il vertice più prossimo del pixel, si procede al seguente corner detection : 0.55 α 1: si assume che la cubica di Bézier simmetrica e convessa di altezza α sia l'approssimante del poligono nel tratto b i-1 v i b i α>1: il poligono nel tratto b i-1 v i b i viene approssimato con i segmenti b i-1 v i ev i b i (la cubica potrebbe non essere convessa) α<0.55: per evitare che in b i-1 eb i la curvatura sia troppo accentuata, si impone che la cubica di Bézier approssimante abbia altezza α=0.55. α
115 Un algoritmo di Tracing: : fase 4 In questa fase si ottimizzano le curve outline finali cercando di approssimare una sequenza di cubiche con un unica cubica a meno di una tolleranza di approssimazione fissata. In questo passo si hanno i seguenti vincoli: i segmenti devono restare segmenti; si approssimano solo sequenze di cubiche che non presentino cambi di convessità; si deve mantenere la continuità geometrica; si minimizza il numero di curve cubiche di Bézier approssimanti finali. Ottimizzazione delle outline
116 Un algoritmo di Tracing: : fase 4 L algoritmo Potrace permette di scegliere alcuni parametri che influenzeranno il risultato del tracing: Turn policies: specificano come risolvere casi di decomposizione in path ambigui; Despeckling: specifica la soglia di eliminazione di rumore; αmax: soglia di riconoscimento degli angoli; Errore di ottimizzazione: specifica l errore massimo consentito in fase di ottimizzazione finale.
117 Esempi di Tracing Bitmap: 736x815 pixel Bitmap: 384x344 pixel Bitmap: 400x453 pixel
118 Conversione a bitmap avendo scalato l immagine e scelta una soglia Esempi di Tracing
119 Esempi di Tracing Tracing, modifica di curve outline, rasterizing
120 Esempi di Tracing
121 Un algoritmo di Color Tracing Uno degli algoritmi di color tracing implementato in InkScape fa uso di Potrace e si compone di 4 fasi: Quantizzazione dell immagine ad N colori (N può essere scelto) L immagine viene convertita in N-1 bitmap, ognuna elaborata con soglia definita dal passaggio fra due colori, una volta ordinati Applicazione di Potrace ad ogni bitmap Generazione dell immagine vettoriale sovrapponendo il risultato degli N-1 tracing, a cui viene applicato il colore opportuno
122 Esempi di Color Tracing Immagine: 500x395 pixel 2 Colori 8 Colori
123 Conclusioni L informatica è basata sulla matematica e fornisce numerosi spunti per fare matematica in modo accattivante. Questo modo di procedere fa inoltre emergere lo spirito applicativo della matematica, spesso dimenticato.
124 Domande?!
125 Argomenti toccati Retta, parabola e cubica nel piano cartesiano (estensione a circonferenza e coniche in genere); Forma algebrica e parametrica; Polinomi e Interpolazione polinomiale; Derivate e tangenti; Definizione ricorsiva, successioni; Trasformazioni geometriche nel piano; Distanza punto/retta; Intersezione retta/retta (rasterizing, clipping); Teoria dei Grafi (cammino minimo); Approssimazione minimi quadrati (retta di regressione lineare);
126 Riferimenti A.Van Dam, S.Feiner, J.Hughes, Computer Graphics principles and practice in C (II edition), Addison Wesley, D.F.Rogers, J.A.Adams, Mathematical Elements for Computer Graphics (second edition), McGraw-Hill, P.Selinger, Potrace: a polygonal-based tracing algorithm, (2003)
LE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
DettagliCorso di Informatica
CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Università degli Studi di Foggia - CdLS in Odontoiatria e Protesi Dentarie Grafica vettoriale!2
DettagliElaborazione testi: immagini
by Studio Elfra sas Gestione Immagini Aggiornato a Aprile 2009 Informatica di base 1 Elaborazione testi: immagini Il testo di un documento di Word può essere integrato con immagini di vario tipo: 2 1 Elaborazione
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliEsempi di funzione. Scheda Tre
Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.
DettagliSpline Nurbs. IUAV Disegno Digitale. Camillo Trevisan
Spline Nurbs IUAV Disegno Digitale Camillo Trevisan Spline e Nurbs Negli anni 70 e 80 del secolo scorso nelle aziende si è iniziata a sentire l esigenza di concentrare in un unica rappresentazione gestita
DettagliMassimi e minimi vincolati di funzioni in due variabili
Massimi e minimi vincolati di funzioni in due variabili I risultati principali della teoria dell ottimizzazione, il Teorema di Fermat in due variabili e il Test dell hessiana, si applicano esclusivamente
DettagliESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004
ESAME DI STAT DI LICE SCIENTIFIC CRS SPERIMENTALE P.N.I. 004 Il candidato risolva uno dei due problemi e 5 dei 0 quesiti in cui si articola il questionario. PRBLEMA Sia la curva d equazione: ke ove k e
DettagliCorso di grafica vettoriale
Presentazioni Carmine De Rosa (HCSSLUG) Corso di grafica vettoriale Laboratorio Turing Dip. di Informatica ed Applicazioni Università degli Studi di Salerno Obbiettivi del corso Obbiettivo 1: Fornire le
DettagliEsempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.
Esempio Risultati sperimentali Approssimazione con il criterio dei minimi quadrati Esempio Interpolazione con spline cubica. Esempio 1 Come procedere? La natura del fenomeno suggerisce che una buona approssimazione
DettagliRETTE, PIANI, SFERE, CIRCONFERENZE
RETTE, PIANI, SFERE, CIRCONFERENZE 1. Esercizi Esercizio 1. Dati i punti A(1, 0, 1) e B(, 1, 1) trovare (1) la loro distanza; () il punto medio del segmento AB; (3) la retta AB sia in forma parametrica,
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliImmagini vettoriali. Immagini raster
Immagini vettoriali Le immagini vettoriali sono caratterizzate da linee e curve definite da entità matematiche chiamate vettori. I vettori sono segmenti definiti da un punto di origine, una direzione e
DettagliAnalisi Matematica 2 per Matematica Esempi di compiti, primo semestre 2011/2012
Analisi Matematica 2 per Matematica Esempi di compiti, primo semestre 211/212 Ricordare: una funzione lipschitziana tra spazi metrici manda insiemi limitati in insiemi limitati; se il dominio di una funzione
DettagliSTUDIO DI UNA FUNZIONE
STUDIO DI UNA FUNZIONE OBIETTIVO: Data l equazione Y = f(x) di una funzione a variabili reali (X R e Y R), studiare l andamento del suo grafico. PROCEDIMENTO 1. STUDIO DEL DOMINIO (CAMPO DI ESISTENZA)
DettagliCapitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano
Capitolo 4: Ottimizzazione non lineare non vincolata parte II E. Amaldi DEIB, Politecnico di Milano 4.3 Algoritmi iterativi e convergenza Programma non lineare (PNL): min f(x) s.v. g i (x) 0 1 i m x S
DettagliEQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6
EQUAZIONI DIFFERENZIALI.. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x log t (d) x = e t x log x (e) y = y 5y+6 (f) y = ty +t t +y (g) y = y (h) xy = y (i) y y y = 0 (j) x = x (k)
DettagliUNIVERSITÀ DEGLI STUDI DI TERAMO
UNIVERSITÀ DEGLI STUDI DI TERAMO CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA (Classe 7) Corso di Matematica per l Economia (Prof. F. Eugeni) TEST DI INGRESSO Teramo, ottobre 00 SEZIONE
DettagliINTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.
INTEGRALI DEFINITI Sia nel campo scientifico che in quello tecnico si presentano spesso situazioni per affrontare le quali è necessario ricorrere al calcolo dell integrale definito. Vi sono infatti svariati
DettagliMATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010
elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre
DettagliProposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 2014
Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 14 Problema 1 Punto a) Osserviamo che g (x) = f(x) e pertanto g () = f() = in quanto Γ è tangente all asse delle ascisse,
DettagliInterpolazione ed approssimazione di funzioni
Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007 Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner
DettagliSlide Cerbara parte1 5. Le distribuzioni teoriche
Slide Cerbara parte1 5 Le distribuzioni teoriche I fenomeni biologici, demografici, sociali ed economici, che sono il principale oggetto della statistica, non sono retti da leggi matematiche. Però dalle
DettagliInformatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
DettagliCorrispondenze e funzioni
Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei
DettagliVC-dimension: Esempio
VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio
DettagliTRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA
SCUOLA PRIMARIA DI CORTE FRANCA MATEMATICA CLASSE QUINTA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA L ALUNNO SVILUPPA UN ATTEGGIAMENTO POSITIVO RISPETTO ALLA MATEMATICA,
Dettagli2 Argomenti introduttivi e generali
1 Note Oltre agli esercizi di questa lista si consiglia di svolgere quelli segnalati o assegnati sul registro e genericamente quelli presentati dal libro come esercizio o come esempio sugli argomenti svolti
DettagliTrasformazioni 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
DettagliFunzioni 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
DettagliTeoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26
Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo
DettagliTrasformazioni Geometriche 1 Roberto Petroni, 2011
1 Trasformazioni Geometriche 1 Roberto etroni, 2011 Trasformazioni Geometriche sul piano euclideo 1) Introduzione Def: si dice trasformazione geometrica una corrispondenza biunivoca che associa ad ogni
DettagliFUNZIONE REALE DI UNA VARIABILE
FUNZIONE REALE DI UNA VARIABILE Funzione: legge che ad ogni elemento di un insieme D (Dominio) tale che D R, fa corrispondere un elemento y R ( R = Codominio ). f : D R : f () = y ; La funzione f(): A
DettagliLE SUCCESSIONI 1. COS E UNA SUCCESSIONE
LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe
DettagliPrincipi e Metodologie della Progettazione Meccanica
Principi e Metodologie della Progettazione Meccanica Corso del II anno della laurea magistrale in ingegneria meccanica ing. F. Campana Modellazione di superfici: introduzione Curve parametriche di Hermite
DettagliGEOGEBRA I OGGETTI GEOMETRICI
GEOGEBRA I OGGETTI GEOMETRICI PROPRIETA : Finestra Proprietà (tasto destro mouse sull oggetto) Fondamentali: permette di assegnare o cambiare NOME, VALORE, di mostrare nascondere l oggetto, di mostrare
Dettagli13. Campi vettoriali
13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliIl campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini
ACQUISIZIONE ED ELABORAZIONE DELLE IMMAGINI Teoria e pratica La digitalizzazione La digitalizzazione di oggetti legati a fenomeni di tipo analogico, avviene attraverso due parametri fondamentali: Il numero
DettagliFUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)
1 FUNZIONE Dati gli insiemi A e B, si definisce funzione da A in B una relazione o legge o corrispondenza che ad ogni elemento di A associa uno ed un solo elemento di B. Si scrive: A B f: A B f() (si legge:
DettagliInformazione analogica e digitale
L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica
DettagliRette e curve, piani e superfici
Rette e curve piani e superfici ) dicembre 2 Scopo di questo articolo è solo quello di proporre uno schema riepilogativo che metta in luce le caratteristiche essenziali delle equazioni di rette e curve
DettagliPROBLEMI TRADIZIONALI SIMULAZIONE DELLA PROVA DI MATEMATICA
Simulazione 01/15 ANNO SCOLASTICO 01/15 PROBLEMI TRADIZIONALI SIMULAZIONE DELLA PROVA DI MATEMATICA DELL ESAME DI STATO PER IL LICEO SCIENTIFICO Il candidato risolva uno dei due problemi Problema 1 Nella
Dettaglie-dva - eni-depth Velocity Analysis
Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa
DettagliDocumentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
DettagliProcesso di rendering
Processo di rendering Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione 2 Rendering nello spazio 2D Il processo di rendering (visualizzazione)
DettagliLA RETTA. Retta per l'origine, rette orizzontali e verticali
Retta per l'origine, rette orizzontali e verticali LA RETTA Abbiamo visto che l'equazione generica di una retta è del tipo Y = mx + q, dove m ne rappresenta la pendenza e q il punto in cui la retta incrocia
Dettagli.y 6. .y 4. .y 5. .y 2.y 3 B C C B. B f A B f -1
Funzioni FUNZIONI Una funzione è una relazione fra due insiemi non vuoti e, che associa ad ogni elemento uno e un solo elemento. In simboli si scrive: = oppure. x 1. x..y B C.y 5 x 4..y 4 L elemento è
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
Dettaglila scienza della rappresentazione e della elaborazione dell informazione
Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione
DettagliMisure di base su una carta. Calcoli di distanze
Misure di base su una carta Calcoli di distanze Per calcolare la distanza tra due punti su una carta disegnata si opera nel modo seguente: 1. Occorre identificare la scala della carta o ricorrendo alle
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliCONI, CILINDRI, SUPERFICI DI ROTAZIONE
CONI, CILINDRI, SUPERFICI DI ROTAZIONE. Esercizi x + z = Esercizio. Data la curva x, calcolare l equazione del cilindro avente γ y = 0 come direttrice e con generatrici parallele al vettore v = (, 0, ).
DettagliPDF created with pdffactory trial version www.pdffactory.com
Codifica di immagini Codifica di immagini o Un immagine è un insieme continuo di informazioni A differenza delle cifre e dei caratteri alfanumerici, per le immagini non esiste un'unità minima di riferimento
DettagliLezione 2: Immagini digitali (1)
Lezione 2: Immagini digitali (1) Informatica e produzione Multimediale Docente: Umberto Castellani Immagini digitali Digitalizzazione o acquisizione di immagini del mondo reale (es. da una fotografia).
DettagliBasi di matematica per il corso di micro
Basi di matematica per il corso di micro Microeconomia (anno accademico 2006-2007) Lezione del 21 Marzo 2007 Marianna Belloc 1 Le funzioni 1.1 Definizione Una funzione è una regola che descrive una relazione
DettagliRappresentazione delle immagini
Rappresentazione delle immagini Le immagini sono informazioni continue in tre dimensioni: due spaziali ed una colorimetrica. Per codificarle occorre operare tre discretizzazioni. Due discretizzazioni spaziali
DettagliUniversita degli Studi di Roma Tor Vergata Facolta di Ingegneria Elettronica
Universita degli Studi di Roma Tor Vergata Facolta di Ingegneria Elettronica Terzo Appello del corso di Geometria e Algebra II Parte - Docente F. Flamini, Roma, 7/09/2007 SVOLGIMENTO COMPITO III APPELLO
Dettagli4 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
DettagliCORSO DI LAUREA IN INGEGNERIA.
CORSO DI LAUREA IN INGEGNERIA. FOGLIO DI ESERCIZI 4 GEOMETRIA E ALGEBRA LINEARE 2010/11 Esercizio 4.1 (2.2). Determinare l equazione parametrica e Cartesiana della retta dello spazio (a) Passante per i
DettagliDISEGNO TECNICO INDUSTRIALE
DISEGNO TECNICO INDUSTRIALE COSTRUZIONI GEOMETRICHE Anno Accademico 2014-2015 Le Costruzioni Geometriche Nello studio del disegno tecnico, inteso come linguaggio grafico comune fra i tecnici per la progettazione
DettagliEsponenziali elogaritmi
Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.
DettagliA intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
DettagliAnalisi Complessa. Prova intermedia del 7 novembre 2002 - Soluzioni. (z 11 1) 11 1 = 0.
Analisi Complessa Prova intermedia del 7 novembre 2002 - Soluzioni Esercizio. Si consideri l equazione z 0. Quante soluzioni distinte esistono in C? Quante di esse sono contenute all interno del disco
DettagliCAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI
CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI Abbiamo studiato successioni e serie numeriche, ora vogliamo studiare successioni e serie di funzioni. Dato un insieme A R, chiamiamo successione di funzioni
DettagliOttimizzazione Multi Obiettivo
Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali
DettagliDocente: Anna Valeria Germinario. Università di Bari. A.V.Germinario (Università di Bari) Analisi Matematica ITPS 1 / 22
Laurea in Informatica e Tecnologie per la Produzione del Software Corso di Analisi Matematica Calcolo differenziale e approssimazioni, formula di Taylor Docente: Anna Valeria Germinario Università di Bari
DettagliLezioni di Matematica 1 - I modulo
Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
DettagliKangourou della Matematica 2014 finale nazionale italiana Mirabilandia, 12 maggio 2014
Kangourou della Matematica 2014 finale nazionale italiana Mirabilandia, 12 maggio 2014 LIVELLO STUDENT K,M N CD BC A S1. (5 punti ) In figura si vede una circonferenza della quale i segmenti AB, BC e CD
DettagliIL CONCETTO DI FUNZIONE
IL CONCETTO DI FUNZIONE Il concetto di funzione è forse il concetto più importante per la matematica: infatti la matematica e' cercare le cause, le implicazioni, le conseguenze e l'utilità di una funzione
DettagliRaccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri
COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri
DettagliLiceo G.B. Vico Corsico
Liceo G.B. Vico Corsico Classe: 3A Materia: MATEMATICA Insegnante: Nicola Moriello Testo utilizzato: Bergamini Trifone Barozzi: Manuale blu.0 di Matematica Moduli S, L, O, Q, Beta ed. Zanichelli 1) Programma
DettagliPROVA N 1. 1. Elencare gli elementi che conviene esaminare per tracciare il grafico di una funzione y=f(x) PROVA N 2. è monotona in R?
PROVA N 1 1. Elencare gli elementi che conviene esaminare per tracciare il grafico di una funzione y=f(). Studiare la funzione f()= 8+ 7 9 (Sono esclusi i flessi) 3. Data la funzione f()= 1 6 3 - +5-6
DettagliOttimizazione vincolata
Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l
DettagliAPPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)
ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliCapitolo 13: L offerta dell impresa e il surplus del produttore
Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:
DettagliGrandezze scalari e vettoriali
Grandezze scalari e vettoriali Esempio vettore spostamento: Esistono due tipi di grandezze fisiche. a) Grandezze scalari specificate da un valore numerico (positivo negativo o nullo) e (nel caso di grandezze
DettagliCONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)
CONTINUITÀ E DERIVABILITÀ Esercizi proposti 1. Determinare lim M(sin) (M(t) denota la mantissa di t) kπ/ al variare di k in Z. Ove tale limite non esista, discutere l esistenza dei limiti laterali. Identificare
DettagliPer studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R
Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.
Dettagli1 Applicazioni Lineari tra Spazi Vettoriali
1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!
DettagliSoluzione di equazioni quadratiche
Soluzione di equazioni quadratiche Soluzione sulla Retta Algebrica Inseriamo sulla Retta Algebrica le seguenti espressioni polinomiali x e x 3 e cerchiamo di individuare i valori di x per i quali i punti
DettagliMatematica 1 - Corso di Laurea in Ingegneria Meccanica
Matematica 1 - Corso di Laurea in Ingegneria Meccanica Esercitazione su massimi e minimi vincolati 9 dicembre 005 Esercizio 1. Considerare l insieme C = {(x,y) R : (x + y ) = x } e dire se è una curva
DettagliPlate Locator Riconoscimento Automatico di Targhe
Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa
DettagliCapitolo V : Il colore nelle immagini digitali
Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche
DettagliFASCI DI RETTE. scrivere la retta in forma esplicita: 2y = 3x + 4 y = 3 2 x 2. scrivere l equazione del fascio di rette:
FASCI DI RETTE DEFINIZIONE: Si chiama fascio di rette parallele o fascio improprio [erroneamente data la somiglianza effettiva con un fascio!] un insieme di rette che hanno tutte lo stesso coefficiente
DettagliLezione 9: Cambio di base
Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire
DettagliLA RETTA. b) se l equazione si presente y=mx+q (dove q è un qualsiasi numero reale) si ha una retta generica del piano.
LA RETTA DESCRIZIONE GENERALE Nella GEOMETRIA ANALITICA si fa sempre un riferimento rispetto al piano cartesiano Oxy; questa riguarda lo studio della retta, delle trasformazioni lineari piane e delle coniche.
DettagliCodifiche a lunghezza variabile
Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un
DettagliEsercizi su lineare indipendenza e generatori
Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v
DettagliRette e piani con le matrici e i determinanti
CAPITOLO Rette e piani con le matrici e i determinanti Esercizio.. Stabilire se i punti A(, ), B(, ) e C(, ) sono allineati. Esercizio.. Stabilire se i punti A(,,), B(,,), C(,, ) e D(4,,0) sono complanari.
DettagliAPPUNTI DI MATEMATICA GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1)
GEOMETRIA \ GEOMETRIA EUCLIDEA \ GEOMETRIA DEL PIANO (1) Un ente (geometrico) è un oggetto studiato dalla geometria. Per descrivere gli enti vengono utilizzate delle definizioni. Una definizione è una
DettagliImmagini vettoriali Immagini bitmap (o raster) Le immagini vettoriali .cdr.swf .svg .ai.dfx .eps.pdf .psd
Esistono due tipi di immagini digitali: Immagini vettoriali, rappresentate come funzioni vettoriali che descrivono curve e poligoni Immagini bitmap, (o raster) rappresentate sul supporto digitale come
DettagliFUNZIONI ELEMENTARI - ESERCIZI SVOLTI
FUNZIONI ELEMENTARI - ESERCIZI SVOLTI 1) Determinare il dominio delle seguenti funzioni di variabile reale: (a) f(x) = x 4 (c) f(x) = 4 x x + (b) f(x) = log( x + x) (d) f(x) = 1 4 x 5 x + 6 ) Data la funzione
DettagliEquazione della Circonferenza - Grafico di una Circonferenza - Intersezione tra Circonferenza e Retta
Equazione della Circonferenza - Grafico di una Circonferenza - Intersezione tra Circonferenza e Retta Francesco Zumbo www.francescozumbo.it http://it.geocities.com/zumbof/ Questi appunti vogliono essere
DettagliFunzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente
Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento
Dettagli(a cura di Francesca Godioli)
lezione n. 12 (a cura di Francesca Godioli) Ad ogni categoria della variabile qualitativa si può assegnare un valore numerico che viene chiamato SCORE. Passare dalla variabile qualitativa X2 a dei valori
Dettagli3 GRAFICI DI FUNZIONI
3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom
Dettagli