esercizi di informatica grafica giovanni...
TRANSCRIPT
Esercizi di Informatica Grafica – Giovanni Stea
2
Gli esercizi contenuti in questa dispensa fanno riferimento al corso di Informatica Grafica, tenuto
presso il Corso di Laurea Specialistica a Ciclo Unico in Ingegneria Edile-Architettura dall’autore
della presente dispensa.
Disclaimer
Gli esercizi inclusi in questa dispensa hanno valore esclusivamente didattico. Essi sono stati verifi-
cati con cura, ma non sono garantiti per nessuno scopo specifico. L’autore non si assume nessuna
responsabilità riguardo ad essi. Chiunque abbia suggerimenti da darmi o trovi errori da correggere è
pregato di contattarmi.
Pisa, Settembre 2005
Giovanni Stea
Esercizi di Informatica Grafica – Giovanni Stea
3
1. - Rappresentazione dei numeri naturali
Esercizio 1.1
Rappresentare in base 2 i seguenti numeri:
1) ( ) 53241
b
2) ( ) 93241
b
3) ( ) 83241
b
Soluzione
Per i primi due casi, e’ necessario passare dalla base 10. Tenendo presente il significato della rap-
presentazione posizionale dei numeri, otteniamo:
( ) 3 2 1 05
3241 3 5 2 5 4 5 1 5 3 125 2 25 4 5 1 446b= ⋅ + ⋅ + ⋅ + ⋅ = ⋅ + ⋅ + ⋅ + =
( ) 3 2 1 09
3241 3 9 2 9 4 9 1 9 3 729 2 81 4 9 1 2386b= ⋅ + ⋅ + ⋅ + ⋅ = ⋅ + ⋅ + ⋅ + =
Dai numeri espressi in base 10, possiamo ricavare la rappresentazione in base 2 applicando
l’algoritmo mod&div, come descritto in Figura 1.
Div Mod
446 0
223 1
111 1
55 1
27 1
13 1
6 0
3 1
1 1
0
Div Mod
2386 0
1193 1
596 0
298 0
149 1
74 0
37 1
18 0
9 1
4 0
2 0
1 1
0
Figura 1 – algoritmo mod&div
Pertanto, abbiamo:
( ) ( )5 23241 110111110
b b≡
Esercizi di Informatica Grafica – Giovanni Stea
4
( ) ( )9 23241 100101010010
b b≡
3) Per quanto riguarda il terzo numero, si puo’ applicare sempre lo stesso procedimento usato per i
due precedenti. In questo caso, pero’, la base di partenza e la base di arrivo sono correlate da una
proprieta’ particolare: la prima e’ potenza della seconda, 38 2= . Ogni volta che si presenta questo
caso, conviene fare la conversione direttamente, senza passare dalla base 10. La conversione puo’
essere fatta osservando che ogni cifra in base 8 (cioe’ 30..7 0..2 1= − ) puo’ essere rappresentata con
tre cifre in base 2. La conversione tra una cifra della base 8 ed un gruppo di tre cifre della base 2
puo’ essere fatta semplicemente in maniera empirica, considerando che ciascuna cifra puo’ essere
scritta come somma delle prime tre potenze di due. Il risultato e’ quello riportato in Figura 2.
3 2 4 1
1 0 1 00 1 1 0 0 0 0 1
Cifra In base 2
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Figura 2 – conversione dalla base 8 alla base 2
Esercizio 1.2
Siano dati i due numeri naturali 13541 e 21256.
1) Calcolare il numero di bit necessari per rappresentare in base 2 i due numeri.
2) Calcolare la rappresentazione in base 2 dei due numeri.
3) Calcolare la rappresentazione in base 2 della loro somma.
Soluzione
1) Il numero di bit necessario alla rappresentazione di un numero naturale N e’ il piu’ piccolo
: 2 1hh N− ≥ . Pertanto, 2 1h N≥ + , cioe’ ( )2log 1h N≥ + . Visto che h e’ il piu’ piccolo intero
che verifica questa proprieta’, posso scrivere ( )2log 1h N= +⎡ ⎤⎢ ⎥ . Nei due casi si ottiene 14h = ,
15h = .
2) Per rappresentare i numeri in base 2 utilizzo l’algoritmo mod&div. Il risultato e’, nei due casi,
11010011100101 e 101001100001000.
Esercizi di Informatica Grafica – Giovanni Stea
5
3) Per rappresentare in base 2 la somma dei due numeri sopra scritti, posso procedere come segue:
calcolo la loro somma in base 10, e converto il numero in base 2 applicando l’algoritmo
mod&div. Alternativamente, posso osservare che l’algoritmo con il quale siamo abituati a cal-
colare le somme consiste nel sommare le cifre di uguale posto (cioe’ le potenze di uguale ordi-
ne), utilizzando le cifre di posto successivo qualora la somma non sia rappresentabile con una
singola cifra (riporto). Quindi, tale algoritmo e’ una proprieta’ della notazione posizionale, in-
dipendente dalla base che si usa per rappresentare i numeri. Posso pertanto eseguire le somme in
base 2, applicando lo stesso algoritmo. La somma dei due numeri e’ descritta in Figura 3. Si os-
servi che la rappresentazione della somma richiede un bit in piu’ del piu’ grande degli operandi
(cioe’ 16 in totale), in quanto c’e’ un riporto.
+1 1 1 00 1 0 0 0 1 0 11 1
0 0 0 00 0 1 1 1 0 0 01 0 1
1 1 1 00 1 1 1 1 1 0 10 0 0
11
1
1 riporti
Figura 3 – Somma di numeri in base 2
Esercizi di Informatica Grafica – Giovanni Stea
6
2. - Architettura dei calcolatori
Esercizio 2.1
Si consideri una memoria con 1024 celle di 8 bit ciascuna.
1) Calcolare il numero di fili di indirizzo e di dati necessari sul bus.
2) Supponiamo che il processore voglia scrivere in memoria il numero 112, alla cella di indirizzo
516. Descrivere il contenuto dei fili di indirizzo e di dati.
3) Supponiamo che sia necessario portare nella cella di memoria di indirizzo 1010 il contenuto del
registro di interfaccia (supposto anch’esso largo 8 bit) presente nello spazio di I/O all’indirizzo
37. Descrivere le operazioni che il processore deve fare per eseguire il trasferimento.
Soluzione
1) Il numero di fili di dati e’ ovviamente 8, tanti quanti sono i bit da trasportare. Il numero di fili di
indirizzo e’ : 2 1024hh = . Quindi, 2log 1024 10h = = .
2) Per rispondere alla domanda e’ necessario convertire i numeri 112 e 516 in base 2. Si applica
quindi l’algoritmo mod&div, come riportato in Figura 4. Il risultato e’ ( ) 2112 1110000
b≡ ,
( ) 2516 1000000100
b≡ . Quindi, la configurazione dei fili del bus dati ed indirizzi sara’ quella ri-
portata in Figura 5. Si osservi che, visto che il numero 112 e’ rappresentabile su 7 bit, mentre il
bus dati e’ costituito da 8 fili, il bit piu’ significativo deve essere impostato a zero.
Div Mod
112 0
56 0
28 0
14 0
7 1
3 1
1 1
0
Div Mod
516 0
258 0
129 1
64 0
32 0
16 0
8 0
4 0
2 0
1 1
0
Figura 4 – algoritmo mod&div
Esercizi di Informatica Grafica – Giovanni Stea
7
7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 1 0 00 1 1 1 0 0 0 0
7 6 5 4 3 2 1 09 8
bus dati bus indirizzi
Figura 5 – bus dati ed indirizzi
3) Ogni trasferimento di informazione deve necessariamente passare attraverso il processore, e ve-
dere coinvolto uno dei suoi registri generali. Pertanto, e’ necessario prima portare il contenuto
del registro di interfaccia in un registro generale del processore, e poi scrivere in memoria il
contenuto di quel registro generale. In termini di istruzioni (scritte, per brevita’, in linguaggio
mnemonico), si ha:
IN R1 37
STORE R1 1010
Esercizio 2.2
Si consideri il frammento di programma riportato in Figura 6, e lo si immagini contenuto in una
memoria RAM a partire nelle celle di indirizzo 100-106. Si consideri inoltre che le celle di indirizzo
50 e 51 contengono i dati riportati nei due casi a e b.
100 LOAD R1 50
101 LOAD R2 51
102 SUB R2 R1
103 JZ 106
104 STORE R1 52
105 JMP 107
106 STORE R2 52
107 ……………
Caso A
50 120
51 120
52
Caso B
50 8
51 150
52
……………
……………
Figura 6 – Contenuto della memoria
1) Stabilire cosa viene inserito nella cella di indirizzo 52 al termine dell’esecuzione del frammento
di programma sopra scritto nei due casi a) e b).
Esercizi di Informatica Grafica – Giovanni Stea
8
2) Supponendo che in tempo di accesso alla memoria sia di 50t ns= , stabilire il tempo di esecu-
zione del suddetto programma nei due casi a) e b). A tal scopo, si supponga trascurabile il tem-
po di esecuzione delle istruzioni di elaborazione e controllo.
Soluzione
1) Per risolvere l’esercizio conviene tener traccia di quello che viene scritto nei registri del proces-
sore.
100 LOAD R1 50
101 LOAD R2 51
102 SUB R2 R1
103 JZ 106
104 STORE R1 52
105 JMP 107
106 STORE R2 52
107 ……………
50 120
51 120
52
R1=120
R1=120, R2=120
R1=120, R2=0
R1=120, R2=0
0
Figura 7 – esecuzione nel caso a)
Nel caso a), le due celle di memoria di indirizzo 50 e 51 contengono lo stesso numero. Tale
numero viene caricato nei registri generali del processore R1 ed R2. La successiva sottrazio-
ne, pertanto, darà risultato nullo. Ciò rende vera la condizione testata dal salto condizionato
JZ, e quindi l’esecuzione del programma passa alla cella di indirizzo 106. A tale cella,
l’istruzione richiede di portare nella cella di indirizzo 52 il contenuto del registro R2, che è
zero.
100 LOAD R1 50
101 LOAD R2 51
102 SUB R2 R1
103 JZ 106
104 STORE R1 52
105 JMP 107
106 STORE R2 52
107 ……………
50 8
51 150
52
R1=8
R1=8, R2=150
R1=8, R2=142
8R1=8, R2=142
Figura 8 – esecuzione nel caso b)
Esercizi di Informatica Grafica – Giovanni Stea
9
Nel caso b), le due celle di memoria di indirizzo 50 e 51 contengono numeri diversi.. La sottra-
zione, pertanto, non darà risultato nullo. Ciò rende falsa la condizione testata dal salto condizio-
nato JZ, e quindi l’esecuzione del programma continua dall’istruzione ad essa successiva. Tale
istruzione richiede di portare nella cella di indirizzo 52 il contenuto del registro R1, che contie-
ne il valore letto nella memoria all’indirizzo 50, cioè 8.
2) L’esecuzione del programma nei due casi a) e b) differisce semplicemente per la veridicità o
meno della condizione testata all’istruzione 103. Nel caso in a), la condizione testata è vera, e
quindi eseguo le istruzioni 100-103, 106 (5 istruzioni in totale). Ciascuna istruzione deve essere
prelevata con una lettura in memoria. Inoltre, le istruzioni 100, 101, 106, richiedono la lettu-
ra/scrittura di dati in memoria nella loro fase di esecuzione. Pertanto, dovrò eseguire in tutto 8
accessi in memoria, per un tempo totale di 8 400T t ns= = . Nel caso b), invece, eseguo le istru-
zioni 100-105 (6 in totale), delle quali la 100, 101, 105 richiedono lettura o scrittura di dati in
memoria. In questo caso, quindi, avremo 9 450T t ns= = .
Esercizio 2.3
Si consideri il frammento di programma riportato di seguito, e lo si immagini contenuto in una me-
moria RAM nelle celle di indirizzo 100-106. Si consideri inoltre che le celle di indirizzo 50 e 51
contengono i dati riportati nei due casi a e b.
1) Stabilire cosa viene inserito nella cella di indirizzo 52 al termine dell’esecuzione del frammento
di programma sopra scritto nei due casi a) e b).
2) Esprimere quale disuguaglianza debba valere tra il contenuto delle celle 50 e 51 affinché, al
termine dell’esecuzione, il contenuto della cella 52 sia identico a quello della cella 51.
3) Supponendo che in tempo di accesso alla memoria sia di 50t ns= , stabilire il tempo di esecu-
zione del suddetto programma nei due casi a) e b). A tal scopo, si supponga trascurabile il tem-
po di esecuzione delle istruzioni di elaborazione e controllo.
100 LOAD R1 50
101 LOAD R2 51
102 SUB R1 R2
103 JC 106
104 STORE R1 52
105 JMP 107
106 STORE R2 52
107 …
Caso A:
50 100
51 120
52
Caso B:
50 25
51 10
52
Soluzione
Il programma in questione scrive nella cella 52 la differenza dei due numeri contenuti nelle celle 50
e 51, se questa è un numero naturale. Altrimenti scrive il valore contenuto nella cella 51.
1) Nel caso a), la differenza è negativa, e quindi la cella 52 conterrà il numero 120. Nel caso b), la
differenza è non negativa, e quindi la cella 52 conterrà 25-10=15.
2) La condizione perché il contenuto della cella 52 sia identico al contenuto della cella 51 è che la
differenza del contenuto delle celle 50 e 51 sia negativa. Pertanto, detto ( )C x il contenuto della
cella di indirizzo x, ( ) ( )50 51C C< .
3) Il programma esegue 5 istruzioni nel caso a), tre delle quali sono di trasferimento. Pertanto, il
tempo di esecuzione in tal caso è ( )5 3 400t ns+ ⋅ = . Nel caso b), il programma ha un’istruzione
in più, e quindi il tempo di esecuzione è ( )6 3 450t ns+ ⋅ =
Esercizio 2.4
Si faccia riferimento al processore d’esempio studiato a lezione, inserito in un sistema in cui è pre-
sente una memoria a 256 celle di 16 bit, e si consideri il seguente frammento di programma, suppo-
nendolo memorizzato nelle celle il cui indirizzo è scritto nella colonna sinistra. Si supponga che
questo programma venga eseguito due volte (caso 1 e caso 2), e che in ciascuno dei due casi il con-
tenuto delle celle di memoria di indirizzo 46-48 sia quello descritto in Figura 9.
100 LOAD R0 46101 ADD R0 R0102 JC 105103 LOAD R1 47104 JMP 106105 LOAD R1 48106 STORE R1 49107 ……………
46 14547 14849
0
46 3500047 14849
0
caso 1 caso 2
Figura 9
1) Si calcoli cosa viene scritto nella cella di indirizzo 49 in entrambi i casi
2) Si scriva la disuguaglianza che deve essere verificata affinché la cella 49 contenga il valore 0
3) Nell’ipotesi in cui il tempo di accesso alla memoria sia 40at ns= , ed il tempo di esecuzione del-
le istruzioni di elaborazione e di controllo sia trascurabile rispetto a at , calcolare la durata totale
dell’elaborazione compiuta dal frammento di programma sopra scritto in entrambi i casi.
Esercizi di Informatica Grafica – Giovanni Stea
11
Soluzione
Le celle di memoria sono larghe 16 bit. Pertanto si possono rappresentare tutti i numeri naturali non
superiori a 162 1 65535− = .
1) Nella cella 49 viene scritto “0” o “1” a seconda che l’operazione di somma di cui all’indirizzo
101 produca o meno un riporto. Un riporto viene prodotto (in questo caso) se una somma pro-
duce un risultato non rappresentabile su 16 bit. Visto che la somma è la somma del contenuto
della cella 46 con se stesso, abbiamo i seguenti due casi:
Caso 1: 145 + 145 = 290. Il numero naturale 290 è rappresentabile su 16 bit. Quindi non c’è ri-
porto, ed il contenuto della cella 49 è pari ad 1.
Caso 2: 35000+35000=70000. Il numero naturale 70000 non è rappresentabile su 16 bit. Quindi
la somma ha generato un riporto. In questo caso, il contenuto della cella 49 sarà pari a 0.
2) Da quanto detto, emerge chiaramente che il contenuto della cella 49 sarà 0 ogni volta che la
somma genera riporto, cioè ogni volta che – detto x il contenuto della cella 46 – sarà:
162 1x x+ > − ,
cioè 152x ≥
3) Nel caso 1 vengono eseguite le 6 istruzioni 100-104, 106, ognuna delle quali deve essere carica-
ta in memoria. Inoltre, le istruzioni 100, 103, 106 sono di trasferimento, e quindi richiedono un
ulteriore accesso alla memoria. In totale, abbiamo 9 accessi alla memoria, per un totale di
360ns.
Nel caso 2, vengono eseguite le 5 istruzioni 100-102, 105-106. Le istruzioni 100, 105, 106 ri-
chiedono un ulteriore accesso in memoria. In totale, abbiamo 8 accessi alla memoria, per un to-
tale di 320ns.
Esercizio 2.5
Si supponga di disporre di un floppy disk caratterizzato dai seguenti dati tecnici: 80T = tracce,
18S = settori per traccia, 512B = byte per settore, velocità di rotazione 360V = rpm, tempo di
spostamento della testina da una traccia alla successiva 1st ms tr= . Sia F un file memorizzato sul
settore j -simo di 18 tracce consecutive, come indicato nella Figura 10.
Esercizi di Informatica Grafica – Giovanni Stea
12
Settore j
Traccia x
Tracciax+17
File F
Figura 10 – File memorizzato su floppy disk
1) Si calcoli il tempo medio di lettura del file F.
2) Si supponga adesso che il file venga deframmentato, in modo tale da occupare i 18 settori di
un’intera traccia. Si calcoli nuovamente il tempo medio di lettura del file F.
Soluzione
Il disco fa 360 giri al minuto, cioè un giro ogni 6o di secondo. Quindi, un giro occupa un tempo
167rt ms≅ .
1) Per leggere l’intero file sarà necessario:
a. Spostare la testina sulla traccia x (tempo di ricerca).
b. Attendere il passaggio del settore j sotto la testina (latenza).
c. Leggere un settore (tempo di trasferimento).
d. Spostare la testina sulla traccia successiva ed attendere nuovamente il passaggio del set-
tore j. Si osservi che il tempo che il lettore di floppy disk ci mette a spostare la testina su
una traccia adiacente, 1st ms tr= , è tale per cui lo spostamento può avvenire senza per-
dere un giro. Infatti, per riportare il settore j sotto la testina, il disco impiegherà
17 18 r st t t= . Ciò garantisce che al successivo giro la testina sarà effettivamente in
grado di leggere il settore j dalla traccia adiacente.
e. Ripetere l’operazione d. fino ad aver letto tutte le 18 tracce.
Nel caso medio, il tempo di cui al punto a. sarà 2 40r sT t T ms= ⋅ = . Il tempo di cui al punto b.
sarà 2 83l rT t ms= ≅ , il tempo di cui al punto c. sarà 18 9.3t rT t ms= ≅ .
Esercizi di Informatica Grafica – Giovanni Stea
13
A partire dall’istante in cui la testina ha letto il settore j sulla traccia x, sarà quindi necessario at-
tendere altre 17 rotazioni complete del disco per leggere tutto il file F. Il tempo totale di lettura
sarà quindi: 17 3tot r l t rT T T T t s= + + + ≅
2) In questo caso, il file si trova tutto sulla stessa traccia. Il tempo medio di lettura del file è quindi
calcolato come somma del tempo di ricerca, della latenza, e del tempo di trasferimento di tutta
una traccia, quest’ultimo pari al tempo di rotazione del disco. Quindi: 0.29tot r l rT T T t s= + + ≅ .
Si osservi che la deframmentazione ha ridotto di un fattore 10 il tempo di lettura del file.
Esercizio 2.6
Si consideri un floppy disk con i seguenti dati tecnici: 80T = tracce, 18S = settori per traccia, ve-
locità di rotazione 360V = rpm, tempo di spostamento della testina da una traccia alla successiva
1st ms tr= . Si consideri un file memorizzato su due settori, il primo sulla traccia 1 ed il secondo
sulla traccia 80, nella medesima posizione su entrambe le tracce.
1) Si calcoli il tempo minimo di lettura del file
2) Si supponga adesso che il tempo di spostamento della testina sia 3st ms tr= . Si risponda nuo-
vamente alla domanda precedente
Soluzione
1) Sia 60 1 6sec 167gt V ms= = ≈ il tempo in cui il disco compie un giro completo. Il tempo mini-
mo di lettura del file si ha quando la testina è posizionata sulla traccia 1, esattamente sul primo
bit del settore da leggere. In questo caso, il primo settore viene letto in un tempo pari al tempo
di trasferimento, 18gt . A partire dall’istante 18gt t= , la testina si deve spostare lungo tutto il
raggio del disco per leggere il settore nella traccia 80. Nel frattempo, il disco sta girando. Il
tempo che ci mette la testina a spostarsi è ( )80 1 79 79s st t ms⋅ − = = . Tale tempo è inferiore al
tempo che ci mette il disco a riportare sotto il braccio della testina il settore da leggere, essendo
quest’ultimo 17 18 158gt ms⋅ ≈ . Pertanto, una volta che la testina è arrivata in posizione sulla
traccia 80, bisogna comunque attendere del tempo prima che passi il settore da leggere. In tota-
le, quindi, il settore da leggere comincia a passare sotto la testina al tempo 18 17 18g g gt t t+ ⋅ = .
Quindi, il tempo minimo di lettura del file è quindi pari a 18 176g gt t ms+ ≈ . Il tutto è riassunto
visivamente in Figura 11.
Esercizi di Informatica Grafica – Giovanni Stea
14
Figura 11
2) La differenza rispetto al caso precedente è che il tempo di spostamento della testina è maggiore
del tempo che il disco ci mette per compiere un giro. Infatti, ( )80 1 79 237s st t ms⋅ − = = . Quin-
di, quando la testina arriva sulla traccia 80, il settore da leggere è già passato perché sono tra-
scorsi più di 17 18gt ⋅ dall’istante in cui la testina si è mossa. In questo caso, una volta che la te-
stina è arrivata in posizione, sarà necessario attendere il successivo giro per leggere il settore. In
tutto, il tempo che deve trascorrere è 18 2 343g gt t ms+ ⋅ ≈ . Il tutto è riassunto visivamente in
Figura 12.
Figura 12
Esercizi di Informatica Grafica – Giovanni Stea
15
Esercizio 2.7
Si consideri un hard disk caratterizzato dai seguenti parametri: tempo medio di ricerca sT =5ms; ve-
locità di rotazione ω =10800 rpm, velocità di trasferimento dati 400B = Mbyte/s.
1) Determinare il tempo medio di lettura LT di un file che occupa un quarto di traccia
2) Determinare il numero tM di Mbyte memorizzati su una traccia
3) Si consideri un file disposto su due tracce consecutive t e 1t + , come mostrato in Figura 13.
Determinare la distanza d che minimizza il tempo di lettura sapendo che il tempo necessario al-
la testina per muoversi da una traccia all’altra è circa 0.5tT = ms. Si esprima la distanza d come
frazione di traccia.
t
t+1
d
Figura 13 – File memorizzato sull’hard disk
Soluzione
1) Il tempo necessario a compiere una rotazione del disco è 60 5.56rT msϖ
= = . Pertanto, il tempo
medio di lettura di un file che occupi un quarto di traccia è dato da (si veda anche l’Esercizio
2.5): 2 4 9.17L s r rT T T T ms= + + = .
2) Durante una rotazione del disco vengono trasferiti rT B⋅ Mbyte di informazione. Pertanto, su
una singola traccia sono memorizzati 35.56 10 400 2.2rT B −⋅ = ⋅ ⋅ = Mbyte,
3) Nel tempo 0.5tT = ms durante il quale la testina si sposta dalla traccia t alla traccia 1t + , il di-
sco compie una frazione di giro pari a 0.09t rT T ≅ . Pertanto, se la distanza d è maggiore di
0.09 parti di giro, si dovrà attendere del tempo per iniziare a leggere dalla traccia 1t + dopo aver
Esercizi di Informatica Grafica – Giovanni Stea
16
spostato la testina. Per contro, se 0.09d < , si dovrà attendere il giro successivo per cominciare
a leggere dalla traccia 1t + . Pertanto, la distanza che minimizza il tempo di lettura è 0.09d = .
Esercizio 2.8
Si consideri un hard disk caratterizzato dai seguenti parametri: 1024T = tracce, 512S = settori per
traccia, 512B = byte per settore, velocità di rotazione 5400V = rpm, tempo di spostamento della
testina da una traccia alla successiva 0.01st ms tr= .
2) Si calcoli il tempo massimo di accesso al disco maxt
3) Di quanto si dovrebbe aumentare la velocita’ di rotazione del disco affinche’ il tempo massimo
di risposta diventi max 2t ? Di quanto affinche’ diventi max 4t ?
4) Si calcoli il massimo tasso al quale e’ possibile leggere dei dati sul disco.
Soluzione
1) Il tempo massimo di accesso al disco e’ dato da:
a. Tempo di ricerca massimo: ( )1 10.23sT t ms− =
b. Latenza massima pari ad un giro: 60 5400 11.1lt ms= =
c. Tempo di trasferimento, pari a lt S , trascurabile rispetto ai precedenti.
Il tempo massimo di trasferimento e’ quindi pari a 21.33 ms.
2) Supponendo di aumentare di k volte la velocita’ di rotazione, la latenza diminuisce di k volte.
L’equazione da impostare nel primo caso e’ la seguente:
( ) ( )11 12s l s lT t t k T t t− + = − +⎡ ⎤⎣ ⎦
che risolta da’:
( )2 25.5
1l
l s
tkt T t
= ≅− −
Per dimezzare il tempo massimo di trasferimento e’ necessario aumentare di oltre 25 volte la ve-
locita’ di rotazione del disco.
Si osservi che non e’ possibile diminuire oltre un certo limite il tempo massimo di accesso a-
gendo semplicemente sulla velocita’ di rotazione del disco, in quanto quest’ultima interviene
soltanto sulla latenza (e sul tempo di trasferimento, che comunque in questo caso e’ trascurabile)
e non sul tempo di ricerca. Come si evince dal risultato del punto 1), il tempo di ricerca costitui-
sce circa meta’ del tempo massimo di accesso. Pertanto, sara’ impossibile ridurre quest’ultimo
Esercizi di Informatica Grafica – Giovanni Stea
17
ad un quarto del suo valore semplicemente aumentando la velocita’ di rotazione del disco. Infat-
ti, l’equazione da impostare nel secondo caso sarebbe:
( ) ( )11 14s l s lT t t k T t t− + = − +⎡ ⎤⎣ ⎦
che porta alla seguente espressione:
( )4 0
3 1l
l s
tkt T t
= <− −
3) Il tasso massimo al quale e’ possibile leggere informazioni dal disco si calcola imponendo che i
tempi variabili di accesso al disco (tempo di ricerca e latenza) abbiano il valore minimo, che e’
zero. In questo caso, si riesce a trasferire una quantita’ di informazione pari a quella contenuta
in 512 settori ( 18512 512 2⋅ = byte) nel tempo di rotazione del disco 60 5400 11.1lt ms= = . La
velocita’ e’ quindi: 18 3
203
2 10 2 22.511.1 10 11.1 4
V −= = ≅⋅ ⋅
Mbyte/s1
Esercizio 2.9
Una scheda video supporta una modalità grafica 1024x768 pixel, con C=65536 colori. Determinare:
1) il numero N di bit di indirizzo della memoria video
2) la dimensione W di una cella della memoria video
3) la dimensione Z (espressa in Mbyte) della memoria video.
4) Di quanto è necessario aumentare dimensione della memoria video affinché si possa raddoppia-
re il numero di colori visualizzabili. Si esprima tale numero come frazione della dimensione del-
la memoria.
Soluzione
1) Il numero totale di celle di memoria video deve essere sufficiente a contenere tutti i pixel rap-
presentati nella modalità grafica descritta. Pertanto:
- N. di pixel totali: 10 10 181024 768 2 2 3 4 3 2R = ⋅ = ⋅ ⋅ = ⋅
- Il numero di celle video deve essere una potenza di 2 che dà un numero maggiore o uguale a
R . Quindi, servono 202V = celle video.
- Per indirizzare 202V = celle video servono 20N = fili di indirizzo.
1 Si osservi che un Mbyte sono 220 byte.
Esercizi di Informatica Grafica – Giovanni Stea
18
2) La dimensione in bit di una cella video deve essere tale per cui l’insieme delle possibili diverse
combinazioni di bit sia maggiore o uguale del numero di colori richiesto. Quindi devo trovare
un numero di bit : 2 65536WW ≥ . Passando ai logaritmi, 2log 65536W ≥ . Visto che W è un in-
tero, posso scrivere: 2log 65536 16W = =⎡ ⎤⎢ ⎥ . Ogni cella deve essere di 2 byte.
3) La dimensione della memoria video è data dal numero di celle per la dimensione di ciascuna
cella. Quindi ho: 202 byte 2 celle 2 MbyteZ = ⋅ =
4) Riprendendo quanto scritto al punto 2, è immediato osservare che la relazione da impostare è: 12 2 65536 2 65536W W −≥ ⋅ ⇒ ≥ . Quindi, per ogni cella di memoria video servono
16 1 17W = + = bit. L’aumento della dimensione della memoria video richiesto, pertanto, è di
1 16 .
Esercizio 2.10
Sia dato uno schermo CRT a 19” capace di una modalità grafica XGA (1024x768), con aspect ratio
4:3.
1) Calcolare il dot-pitch e la risoluzione dello schermo.
2) Calcolare il numero di celle di memoria video sufficienti a memorizzare un’intera schermata
3) Sapendo che l’occhio umano deve poter visualizzare almeno 10 milioni di colori, stabilire la
grandezza di una cella di memoria video necessaria a rappresentare tutti i colori visibili.
4) Calcolare la dimensione della memoria video.
5) Supponendo che il refresh rate dello schermo sia di 100Hz, determinare il massimo tempo di
accesso che la memoria video deve avere per supportare la modalità grafica sopra descritta.
Soluzione
Come mostrato in Figura 14, la dimensione netta dello schermo è inferiore di un pollice alla dimen-
sione riportata nei dati di produzione. Pertanto, la diagonale dello schermo è lunga 18"D = .
Esercizi di Informatica Grafica – Giovanni Stea
19
18" 19"
Figura 14 – dimensioni dello schermo
Dato il rapporto di forma 4:3, si calcolano le dimensioni dei due lati tenendo presente che la diago-
nale ed i due lati formano una terna pitagorica. Pertanto:
4 5 14.4"3 5 10.8"
x Dy D= ⋅ =⎧
⎨ = ⋅ =⎩
1) Il dot-pitch dello schermo è dato dal rapporto tra la dimensione di uno qualunque dei due lati,
quest’ultima espressa in millimetri, ed il numero di pixel sul lato. A tal proposito, giova ricorda-
re che un pollice è pari a 25.4 mm.
Pertanto, il dot-pitch è 14.4 25.4 14.4 0.361024 40
d ⋅= ≅ ≅ mm.
La risoluzione si calcola come il rapporto tra il numero di pixel e la lunghezza del lato, conve-
nendo di esprimere il lato in pollici (dpi, dots per inch). Pertanto:
1024 7114.4
r = ≅ dpi.
2) Il numero totale di celle di memoria video deve essere sufficiente a contenere tutti i pixel rap-
presentati nella modalità grafica descritta. Pertanto:
- N. di pixel totali: 10 10 181024 768 2 2 3 4 3 2R = ⋅ = ⋅ ⋅ = ⋅
- Il numero di celle video deve essere una potenza di 2 che dà un numero maggiore o uguale a
R . Quindi, servono 202V = celle di memoria video.
3) Seguendo lo stesso procedimento dell’Esercizio 2.9, punto 2, si ottiene:
2log 10000000 24W = =⎡ ⎤⎢ ⎥
4) Seguendo lo stesso procedimento dell’Esercizio 2.9, punto 3, si ottiene: 203 byte 2 celle 3 MbyteZ = ⋅ =
Esercizi di Informatica Grafica – Giovanni Stea
20
5) Per poter sostenere un refresh rate di 100 Hz, è necessario leggere tutte le celle di memoria vi-
deo che contengono una schermata per 100 volte al secondo. Il numero di celle coinvolte è, co-
me abbiamo visto, pari ad R . Quindi, una cella di memoria video deve poter essere acceduta in
un tempo ( )1 100 13.3t R ns= ≅ .
Esercizio 2.11
Dato uno schermo CRT 17” di tipo multisync, con aspect ratio 4:3, determinarne il dot pitch e la ri-
soluzione quando la modalità grafica attivata è:
1) 640x480
2) 1024x768
3) Si supponga di impostare sul monitor una modalità di visualizzazione 1280x1024. Quale sarà la
forma dei pixel?
Soluzione
La diagonale “netta” dello schermo (cfr. la soluzione dell’Esercizio 2.10) è di 16”. Pertanto le di-
mensioni lineari dello schermo sono:
4 5 16" 12.8"3 5 16" 9.6"
xy= ⋅ =⎧
⎨ = ⋅ =⎩
1) In questo caso, il dot-pitch è 12.8 25.4 25.42 0.51640 100
d ⋅= = ⋅ ≅ mm. La risoluzione è
640 5012.8
R = = dpi.
2) In questo caso, il dot-pitch è 12.8 25.4 12.8 0.321024 40
d ⋅= ≅ ≅ mm. La risoluzione è 1024 80
12.8R = =
dpi.
3) Nei casi di cui ai punti 1) e 2) il rapporto tra il numero di pixel sui due assi è 4:3, pari a quello
dello schermo, e quindi i pixel risulteranno quadrati. In questi casi, dot-pitch e risoluzione sono
identici su entrambi gli assi, e quindi possono essere calcolati considerandone uno o l’altro in-
differentemente. Se invece la modalità grafica utilizzata è 1280x1024, il rapporto tra il numero
di pixel sui due assi è 5:4, come si può facilmente osservare riducendo ai minimi termini il rap-
porto dei due numeri sopra scritti. Tale rapporto è differente dal rapporto delle dimensioni linea-
ri (aspect ratio) del monitor (4:3). Cio’ significa che i pixel non potranno che essere rettangola-
ri, con il lato orizzontale più lungo. In questo caso il dot-pitch (distanza tra i centri di due pixel)
Esercizi di Informatica Grafica – Giovanni Stea
21
o, analogamente, la risoluzione, sono differenti sui due assi; in particolare il dot-pitch e’ mag-
giore (la risoluzione e’ minore) sull’asse orizzontale che sull’asse verticale.
Esercizio 2.12
Si consideri una scheda video dotata di una memoria video di 2Mbyte, con un tempo di accesso
ta=20ns. Si assuma che la medesima sia connessa ad un monitor 4:3 sul quale è impostata una mo-
dalità grafica di 1024x768 pixel.
1) Si calcoli qual è il massimo numero di pixel che si possono visualizzare con la memoria video
disponibile, nell’ipotesi che si debbano visualizzare contemporaneamente almeno 10 milioni di
colori.
2) Si dica se tale numero è sufficiente a visualizzare il numero di pixel richiesto dalla modalità gra-
fica impostata sullo schermo. Nel caso che non lo sia, si dica quale deve essere la dimensione
della memoria affinché ciò sia possibile.
3) Si calcoli qual è il massimo refresh rate che può essere impostato con la suddetta modalità gra-
fica, dato il tempo di accesso alla memoria video.
Soluzione
1) dovendo essere visualizzati contemporaneamente 10 milioni di colori, è necessario che ciascuna
cella sia grande almeno ( )2log 10 24k M bit= =⎡ ⎤⎢ ⎥ . Visto che ogni cella di memoria video deve esse-
re di 3 byte, il numero massimo di pixel visualizzabili in totale è pari ad un terzo della dimen-
sione della memoria stessa, cioè circa 670mila di pixel.
2) La modalità grafica impostata sullo schermo richiede la visualizzazione di 768Kpixel, che sono
in numero maggiore di quelli visualizzabili con 2Mbyte di memoria (670mila). Servono quindi
almeno 4Mbyte.
3) Il numero di celle che possono essere lette in un secondo è pari a 1 ta . Il massimo refresh rate
che è possibile impostare sullo schermo è quel numero f per cui la lettura di 768K f⋅ celle è i-
dentico a 1 ta . Pertanto:
1 65768
f HzK ta
=⋅
Esercizi di Informatica Grafica – Giovanni Stea
22
3. - Sistemi operativi
Esercizio 3.1
Si consideri un sistema operativo multitasking, nel quale il tempo di cambiamento di contesto è fis-
so e pari a 1cct = ms. Si definisca “time slice” il tempo massimo per il quale un programma può e-
seguire senza bloccarsi prima che il sistema operativo passi il controllo ad un altro programma.
1) Si stabilisca la durata della time slice in modo tale che l’efficienza del sistema, cioè la percen-
tuale di tempo che quest’ultimo passa ad eseguire compiti significativi impartiti dall’utente, sia
del 95%.
2) Si supponga che il processore sia in grado di eseguire 1000 istruzioni durante una time slice. Si
calcoli il tempo al quale termina (in assenza di blocchi) un programma P che deve eseguire
10000 istruzioni, supponendo che all’istante 0t = il programma P cominci la sua esecuzione,
nell’ipotesi che altri 5 programmi siano “contemporaneamente” in esecuzione. Si consideri che
il sistema operativo consente ai vari programmi di andare in esecuzione “a turno”, in modo e-
quo, per una time slice ciascuno.
3) Si confronti il caso 2) con quello in cui sono contemporaneamente in esecuzione 2 altri pro-
grammi.
Soluzione
1) Se il sistema ha una time slice di durata st , la sua efficienza è ( )s s ccE t t t= + . Dovrà pertanto
essere 191
ccs
E ttE⋅
= =−
ms.
2) In questo caso, il programma P dovrà andare in esecuzione per 10 time slice. Per 9 volte, però,
sarà interrotto da altri programmi, per una durata totale di 5 time slice più 5 tempi di cambio di
contesto. Il programma P completerà quindi la sua esecuzione all’istante
( )9 6 1.1s cc sT t t t= ⋅ ⋅ + + = s.
3) In questo caso, avremo ( )9 3 559s cc sT t t t= ⋅ ⋅ + + = ms
Esercizio 3.2
Si consideri un interprete comandi a riga di comando. Sia “dir”, seguito dal percorso della directory
il cui contenuto si vuole visualizzare, il comando necessario alla visualizzazione del contenuto di
una directory (ad esempio: “dir pippo” mostra il contenuto della directory “pippo”). Supponiamo
Esercizi di Informatica Grafica – Giovanni Stea
23
che il disco identificato dalla lettera “c” abbia un file system descrivibile tramite il diagramma ad
albero riportato in Figura 15, e supponiamo che l’interprete di comandi stia visualizzando il prompt
riportato in Figura 16.
somma.exesomma.exe
etc Netsim studenti
mydir
radice
fact.C
fact.exefact.exe
somma.exe
somma.C
tetris.exe
letter.doc
friend.doc
games
docs
bin
fondinfmyexe
passwords
startup.exe
Figura 15 – Rappresentazione ad albero del file system
Figura 16 – prompt dell’interprete
Scrivere il comando che consente di visualizzare il contenuto della directory “docs”, riferendo
quest’ultima
a. In modo assoluto.
b. In modo relativo, rispetto alla directory corrente.
Soluzione
Se voglio riferire una directory in modo assoluto, devo indicare il percorso a partire dal nodo radice
dell’albero. Il percorso assoluto è quindi “\studenti\mydir\docs” (si noti che il percorso è assoluto, e
quindi inizia con una barra invertita). Quindi, per il caso a), il comando è: “dir
\studenti\mydir\docs”.
Nel caso b), è necessario calcolare il percorso relativamente alla directory corrente, che è quella
specificata nel messaggio di prompt (“Netsim”). Per arrivare alla directory richiesta, è quindi neces-
sario risalire di un livello l’albero del file system, per poi ridiscenderlo di nuovo. Il percorso relativo
è quindi “..\studenti\mydir\docs” (si noti che il percorso è relativo, e quindi non inizia con una barra
invertita). Quindi, per il caso b), il comando è: “dir ..\studenti\mydir\docs”.
Esercizi di Informatica Grafica – Giovanni Stea
24
4. - Rappresentazione delle immagini
Esercizio 4.1
Sia data una stampante laser B/N in grado di stampare 10 pagine A4 (21x29.7cm) al minuto.
1) Supponendo che il tamburo della stampante abbia un diametro 10D = cm, si calcoli la velocità
di rotazione del medesimo (in radianti al secondo) necessaria a garantire tali prestazioni. Si sup-
ponga, per semplicità, che la stampante possa essere alimentata di carta con continuità.
2) Si supponga che la stampante debba stampare su un’area di 8”x11” un’immagine in bianco e ne-
ro con una risoluzione di 100 dpi. Si supponga che la trasmissione dei dati dal calcolatore alla
stampante avvenga ad una velocità C = 500 Kbit/s. Si calcoli il tempo di invio dell’immagine
alla stampante.
3) Supponendo che il processo di stampa della pagina j e di ricezione della pagina j+1 possano av-
venire in parallelo, si calcoli quale deve essere la velocità minima di trasmissione dei dati dal
calcolatore alla stampante perché quest’ultima possa stampare pagine del tipo descritto al punto
2 alla massima velocità di cui è capace.
4) Supponiamo adesso che la stampante sia a colori. Si calcolino:
a. La velocità di rotazione del tamburo necessaria a garantire la stampa 10 pagine al minu-
to.
b. La velocità di trasmissione dati necessaria a garantire la stampa di 10 pagine al minuto,
sotto le ipotesi di cui al punto 2).
Soluzione
1) Il tamburo della stampante deve poter ruotare per una lunghezza di 10 29.7 297L = ⋅ = cm in un
minuto. Deve poter quindi descrivere LDπ
circonferenze, cioè 2 59.4LD
ππ
⋅ ≅ radianti in un
minuto. La velocità di rotazione sarà quindi pari a circa un radiante al secondo.
2) L’immagine è composta da un numero di punti pari a 8 100 11 100 880000P = ⋅ ⋅ ⋅ = . Visto che
l’immagine è in bianco e nero, ciascun pixel richiede soltanto un bit. In tal caso, il tempo di tra-
smissione sarà: 880000 1.76500000st = = s.
3) Se la stampante è in grado di stampare 10 pagine al minuto, può stampare una pagina in 6 se-
condi. Quindi, per poter stampare a ciclo continuo deve poter ricevere 880000 bit in un tempo
Esercizi di Informatica Grafica – Giovanni Stea
25
pari a 6 secondi. La velocità minima del collegamento deve quindi essere:
880000 1476
V = ≅ Kbit/s.
4) In questo caso, un foglio deve essere stampato 4 volte (una per ciascuno dei 4 colori fondamen-
tali per la stampa in quadricromia: Cyan, Magenta, Yellow, blacK). Pertanto, la velocità di rota-
zione del tamburo deve essere 4 volte superiore a quella calcolata al punto 1, cioè circa 4 radian-
ti al secondo. Per poter stampare un’immagine in quadricromia, è necessario mandare alla stam-
pante 4 immagini successive, una per ciascuno dei 4 colori fondamentali. In ciascuna di queste
immagini, un pixel è associato ad un singolo bit (ad esempio: 1=inchiostro presente,
0=inchiostro non presente). Pertanto, per quanto riguarda la trasmissione dati, la velocità deve
essere 4 volte superiore, cioè 8800004 5876
V = ⋅ ≅ Kbit/s
Esercizio 4.2
Sia data un’immagine raster 200x400 pixel, formata da bande verticali di colori diversi, ciascuna
larga 5 pixel.
1) Si calcoli la dimensione del file che memorizza l’immagine sotto le seguenti ipotesi:
a. Il file è memorizzato in formato bitmap non compresso, con un numero di colori suffi-
ciente alla sua corretta rappresentazione (si trascurino eventuali header del formato bit-
map non considerati durante le lezioni).
b. Il file è memorizzato in un formato compresso che usa la tecnica run length encoding:
dati j pixel consecutivi del medesimo colore, viene memorizzata la coppia ,j c , con c
numero del colore. Il numero j è memorizzato su 2 byte, mentre c è memorizzato su 1
byte.
2) Si supponga adesso che l’immagine venga ruotata di 90°. Si risponda nuovamente alla domanda
1) nei 2 casi proposti.
Soluzione
1) Se ogni banda verticale è larga 5 pixel, nel file sono presenti contemporaneamente
200 5 40C = = colori. Pertanto, il file può essere salvato come bitmap a 256 colori senza che ci
sia perdita di informazione. In tal caso, il numero di punti associato all’immagine sarà:
200 400 80000P = ⋅ = . Va tenuta in conto anche la palette, che avrà dimensione pari a
3 256 768⋅ = byte. La dimensione totale del file associato all’immagine sarà quindi non meno di
80768 byte. Nel caso del formato compresso, invece, ogni gruppo di 5 pixel consecutivi può es-
Esercizi di Informatica Grafica – Giovanni Stea
26
sere rappresentato con 3 soli byte. Pertanto la dimensione del file sul disco sarà
80000 3 5 768 48768D = ⋅ + = byte.
2) Nel caso in cui l’immagine venga ruotata, le bande da verticali diventano orizzontali. Il numero
totale di pixel non cambia: pertanto, la dimensione del file nel caso di cui al punto a) rimane la
stessa. Nel caso di cui al punto b), invece, il numero di pixel consecutivi dello stesso colore pas-
sa da 5 a 400x5=2000. Quindi, la dimensione del file diventa 80000 3 2000 768 888D = ⋅ + =
byte.
Esercizi di Informatica Grafica – Giovanni Stea
27
5. - Computer Graphics
Esercizio 5.1
Ln
Vθφ
Si consideri una scena illuminata da una sorgente di luce puntiforme, di intensità I . Si consideri un
punto x posto su una superficie, e si consideri una direzione di vista V contenuta nello stesso piano
che contiene la normale n alla superficie in x e la direzione incidente della luce in x , L . Sia θ
l’angolo tra la n e L . Si supponga di utilizzare il modello di illuminazione di Phong, con 1α = , e
siano , ,a s dk k k i coefficienti di riflessione ambientale, speculare e diffusiva in x .
1) Si calcoli il valore 0φ dell’angolo φ tra la normale e la direzione di vista che rende massima la
luminosità percepita nel punto x , in funzione degli altri parametri
2) Si disegni l’andamento della luminosità percepita dall’osservatore, per 0 90φ≤ ≤ .
3) Supponendo 1 3s d ak k k= = = , si calcoli l’intensità di luce riflessa in direzione 0φ in funzione di
θ .
Soluzione
1) L’equazione di illuminazione di Phong è la seguente:
( ) ( )p tot a d sI I k I k L n k V Rα
λ λ λλ
⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑
Che, nel caso specifico, si semplifica a:
( )cos cosp a d sI I k I k kθ φ θ= ⋅ + ⋅ ⋅ + ⋅ −⎡ ⎤⎣ ⎦ (1)
L’unico termine che dipende da φ è ( )cos φ θ− , che è massimo per 0φ θ= .
Esercizi di Informatica Grafica – Giovanni Stea
28
2) L’andamento del grafico è quello di una cosinusoide, rappresentato nel grafico sottostante. Il di-
segno è accurato se 0 45θ≤ < , altrimenti la quota per 90φ = è maggiore di quella per 0φ = .
( )cos sina d sI k k kθ θ⋅ + ⋅ + ⋅
[ ]cosa d sI k k kθ⋅ + ⋅ +
0φ θ=
( ) cosa d sI k k k θ⋅ + + ⋅⎡ ⎤⎣ ⎦
90
3) sostituendo i valori dati nella (1) si ottiene la seguente equazione:
( )1 1 1cos 2 cos3 3 3 3p
II I I θ θ⎡ ⎤= ⋅ + ⋅ ⋅ + = ⋅ +⎢ ⎥⎣ ⎦
Nel caso 0θ = (che implica anche 0 0φ = ), la luce incidente è identica a quella riflessa.
Esercizio 5.2
1Ln
V1θφ
2L
2θ
Si consideri una scena illuminata da due sorgenti luci puntiformi, di intensità 1 2,I I . Si consideri un
punto x posto su una superficie, e si consideri una direzione di vista V contenuta nello stesso piano
che contiene la normale n alla superficie in x e le direzioni incidenti delle due luci in x , 1 2,L L .
Esercizi di Informatica Grafica – Giovanni Stea
29
Siano 1 2,θ θ gli angoli tra la n e 1 2,L L . Siano , ,a s dk k k i coefficienti di riflessione ambientale, spe-
culare e diffusiva in x . Si supponga di utilizzare il modello di illuminazione di Phong, con 1α = .
1) Si calcoli l’angolo φ tra la normale e la direzione di vista che rende massima la luminosità per-
cepita in x , in funzione degli altri parametri
2) si istanzi la formula trovata nei casi seguenti:
a) 1 2θ θ=
b) 1 26, 3θ π θ π= = , 1 2I I=
c) 1 0θ = , 2 0θ >
e si commentino opportunamente i risultati trovati.
Soluzione
1) L’equazione di illuminazione di Phong è la seguente:
( ) ( )1,2
tot a d sI I k I k L n k V Rα
λ λ λλ=
⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑
Che, con i valori indicati, risulta essere:
( ) ( ) ( )1 2 1 1 1 2 2 2cos cos cos cosa d s d sI I I k I k k I k kθ φ θ θ φ θ= + ⋅ + ⋅ ⋅ + ⋅ − + ⋅ ⋅ + ⋅ −⎡ ⎤ ⎡ ⎤⎣ ⎦ ⎣ ⎦
Usando alcune note formule trigonometriche, si ottiene:
( ) ( )( )
1 2 1 1 1 1
2 2 2 2
cos cos cos sin sin
cos cos cos sin sina d s
d s
I I I k I k k
I k k
θ φ θ φ θ
θ φ θ φ θ
= + ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦+ ⋅ ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦
E, dopo alcune semplici manipolazioni:
( ) ( )( ) ( )
1 2 1 1 2 2
1 1 2 2 1 1 2 2
cos cos
cos cos cos sin sin sina d
s
I I I k I I k
k I I I I
θ θ
φ θ θ φ θ θ
= + ⋅ + ⋅ + ⋅ ⋅
+ ⋅ ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦
Per calcolare il massimo, è necessario derivare l’espressione sopra scritta rispetto all’angolo φ .
( ) ( )1 1 2 2 1 1 2 2sin cos cos cos sin sinsI k I I I Iφ θ θ φ θ θφ∂
= ⋅ − ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦∂
Dal che si nota che il massimo non dipende dai coefficienti di riflessione, come è intuitivamente
ovvio, ma soltanto dalle intensità e dalla direzione delle due luci.
Per trovare il massimo, è necessario risolvere la seguente equazione:
( ) ( )1 1 2 2 1 1 2 2sin cos cos cos sin sin 0I I I Iφ θ θ φ θ θ− ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅ =
Che dà immediatamente:
1 1 2 2
1 1 2 2
sin sintancos cos
I II I
θ θφθ θ
⋅ + ⋅=
⋅ + ⋅ (2)
Esercizi di Informatica Grafica – Giovanni Stea
30
2) Distinguiamo i casi:
a) 1 2θ θ θ= =
In questo caso la formula Errore. L'origine riferimento non è stata trovata. diventa:
( )( )
1 2
1 2 2
sintan tan
cosI II I
θφ θ
θ+ ⋅
= =+ ⋅
Da cui φ θ= . Il risultato è ovvio: se due luci puntiformi provengono dalla stessa direzione, possono
essere assimilate ad un’unica sorgente luminosa di intensità pari alla somma delle singole intensità.
In tal caso, la direzione di massima luminosità è quella in cui si concentra la riflessione speculare,
che è identica alla direzione di incidenza.
b) 1 26, 3θ π θ π= =
In questo caso si ottiene per sostituzione quanto segue:
1 2
1 2
3tan 13
I II I
φ ⋅ += =
+ ⋅
Cioè 4φ π= . La direzione di massima luminosità è infatti quella intermedia tra le due direzioni di
riflessione speculare delle due luci.
c) 1 20, 0θ θ= >
2
1 2 2
sintancosI Iθφ
θ=
+
La sorgente luminosa 1 viene riflessa nella stessa direzione da cui proviene. Tanto più 1I ha intensi-
tà trascurabile rispetto a 2I , tanto più l’angolo ottimo si avvicina all’angolo 2θ (infatti il primo ter-
mine al denominatore tende ad essere trascurabile rispetto al secondo. Per contro, se 1 2I I , il pri-
mo termine tende ad infinito, e quindi l’angolo ottimo si avvicina a 0 .