Esercizi Lezione 5: Grafica 3D.

[Graphics:../Images/index_gr_272.gif]

[Graphics:../Images/index_gr_273.gif]

[Graphics:../Images/index_gr_274.gif]

93. Esempio di grafica 3D mal fatta. Disegnare di un'onda a cerchi concentrici:
                                     z = sin([Graphics:../Images/index_gr_275.gif])
usando il comando Plot3D senza particolari opzioni. Gli argomenti di Plot3D sono:
             Plot3D[espr, {x, xmin, xmax}, {y, ymin, ymax}]
dove espr è una espressione in x, y. Al posto di x, y possiamo usare due variabili qualunque.

[Graphics:../Images/index_gr_276.gif]

[Graphics:../Images/index_gr_277.gif]

[Graphics:../Images/index_gr_278.gif]

94. Commento. La superficie viene disegnata giuntando in una sorta di "griglia" un gran numero di rettangoli in varie inclinazioni. In assenza di indicazioni Mathematica ha scelto di usare una griglia costituita di pochi rettangoli; il fatto che tale griglia sia stata lasciata visibile rende ancora più difficile vedere la figura.
Infine, Mathematica ha deformato notevolmente la figura, scegliendo unità di misura molto diverse sui vari assi.

95. Per ovviare alle scelte erronee fatte, useremo una versione con opzioni del comando Plot3D:
  Plot3D[e, {x, xm, xM}, {y, ym, yM}, opzione1->valore1, ...]
Come opzioni, scegliamo: aumentare il numero di rettangoli a 100 x 100 (opzione PlotPoints); rendere invisibile la griglia sulla superficie (opzione Mesh); limitarsi alle altezze tra -20 e 20 (opzione PlotRange). (Si veda nell'Help come usare queste opzioni).
La stessa superficie apparirà ora molto diversa (e più vicina al suo aspetto reale).

[Graphics:../Images/index_gr_279.gif]

[Graphics:../Images/index_gr_280.gif]

[Graphics:../Images/index_gr_281.gif]

96. Sovrapposizione di due onde. Utilizzando gli accorgimenti appena visti, disegnare il grafico di due onde sovrapposte:
z = sin([Graphics:../Images/index_gr_282.gif])+sin([Graphics:../Images/index_gr_283.gif])

[Graphics:../Images/index_gr_284.gif]

[Graphics:../Images/index_gr_285.gif]

[Graphics:../Images/index_gr_286.gif]

97. Animazione. Scrivere una funzione iper[k] che prenda un numero reale k, e restituisca il disegno dell'iperbole equilatera y=k/x. Per poter fornire come risultato un disegno, l'equazione di definizione di iper[k_] dovrà quindi essere della forma iper[k_] := Plot[...].

[Graphics:../Images/index_gr_287.gif]

98. Generare la tabella T dei valori di iper[k], per k che assume valori prossimi a 0, quindi "animarla".  
Come si fa? Per ogni valore di k, iper[k] restituisce un grafico. Per esempio, iper[1] è il grafico di y=1/x, iper[2] il grafico di y=2/x, e così via. Una lista del tipo {iper[0.1], iper[0.2], ..., iper[0.9]} è quindi una lista di grafici, una vera e propria pellicola di immagini della curva y=k/x prese per diversi valori di k. Facendo scorrere rapidamente tale pellicola (a tal fine, è sufficiente schiacciare un qualunque suo fotogramma) si avrà l'impressione di vedere k variare nel tempo.

[Graphics:../Images/index_gr_288.gif]

[Graphics:../Images/index_gr_289.gif]

[Graphics:../Images/index_gr_290.gif]

[Graphics:../Images/index_gr_291.gif]

[Graphics:../Images/index_gr_292.gif]

[Graphics:../Images/index_gr_293.gif]

[Graphics:../Images/index_gr_294.gif]

[Graphics:../Images/index_gr_295.gif]

[Graphics:../Images/index_gr_296.gif]

[Graphics:../Images/index_gr_297.gif]

[Graphics:../Images/index_gr_298.gif]

[Graphics:../Images/index_gr_299.gif]

[Graphics:../Images/index_gr_300.gif]

[Graphics:../Images/index_gr_301.gif]

[Graphics:../Images/index_gr_302.gif]

[Graphics:../Images/index_gr_303.gif]

[Graphics:../Images/index_gr_304.gif]

[Graphics:../Images/index_gr_305.gif]

[Graphics:../Images/index_gr_306.gif]

[Graphics:../Images/index_gr_307.gif]

[Graphics:../Images/index_gr_308.gif]

Attenzione alla scala usata negli assi x,y. Affinchè l'animazione riesca, occorre che la scala delle x in ogni fotogramma sia la stessa (e così per le y e le z).
Questo si può ottenere (sia in 2D che in 3D) fissando in tutti i grafici
                               PlotRange->{a,b}
  
(lo stesso intervallo [a,b] per la variabile y) per tutti; oppure (in 2D soltanto) fissando in tutti i grafici
                          AspectRatio->Automatic
  oppure (in 3D soltanto) fissando
                             SphericalRegion->True

99. Animare la famiglia T di iperboli così ottenuta (schiacciare due volte sulla prima immagine ottenuta per animarla).

100. Animazione: un'onda. Scrivere una funzione Onda[t_], che prenda un valore t di una variabile "tempo", e restituisca il disegno di un'onda concentrica che viaggi con velocità costante. L'equazione di tale onda, scritta in funzione di t, è:
                         z = sin([Graphics:../Images/index_gr_309.gif])

Ricordatevi tutti gli accorgimenti già visti!  In particolare, il PlotRange delle diverse immagini deve essere lo stesso.

[Graphics:../Images/index_gr_310.gif]

101. Generare la tabella T dei valori di Onda[t], per t=0,1,2, ...,9. Animare (con ShowAnimation) la famiglia T di onde così ottenuta (schiacciare due volte sulla prima immagine ottenuta per animarla).

[Graphics:../Images/index_gr_311.gif]

[Graphics:../Images/index_gr_312.gif]

[Graphics:../Images/index_gr_313.gif]

[Graphics:../Images/index_gr_314.gif]

[Graphics:../Images/index_gr_315.gif]

[Graphics:../Images/index_gr_316.gif]

[Graphics:../Images/index_gr_317.gif]

[Graphics:../Images/index_gr_318.gif]

[Graphics:../Images/index_gr_319.gif]

[Graphics:../Images/index_gr_320.gif]

[Graphics:../Images/index_gr_321.gif]

102. Quadriche. Paraboloide ellittico: disegnare la superficie
                               z = [Graphics:../Images/index_gr_322.gif]/9)
scegliendo un'opportuno punto di vista. L'opzione è ViewPoint -> {x,y,z}, dove {x,y,z} sono le coordinate dell'osservatore del disegno (leggete l'Help per saperne di più).

[Graphics:../Images/index_gr_323.gif]

[Graphics:../Images/index_gr_324.gif]

[Graphics:../Images/index_gr_325.gif]

Notate che Mathematica riempe eventuali "buchi" presenti nella superficie . Se volete evitarlo, dovete porre il valore dell'opzione ClipFill (che significa "Rammendo") a False.

103. Paraboloide Iperbolico (o a sella). Disegnare la superficie
                                z = [Graphics:../Images/index_gr_326.gif]/9)
usando tutte le opzioni viste in precedenza.

[Graphics:../Images/index_gr_327.gif]

[Graphics:../Images/index_gr_328.gif]

[Graphics:../Images/index_gr_329.gif]

104. Superficie di ordine 3. Disegnare la superficie:
                              z = [Graphics:../Images/index_gr_330.gif]/27)
utilizzando tutte le opzioni viste in precedenza.

[Graphics:../Images/index_gr_331.gif]

[Graphics:../Images/index_gr_332.gif]

[Graphics:../Images/index_gr_333.gif]

105. Superfici parametriche: quadriche. Cilindro. Disegnare la superficie parametrica:
                x = sin(t), y = cos(t), z = u   (tε[0,2π], uε[-2,2])

Il comando

[Graphics:../Images/index_gr_334.gif]

[Graphics:../Images/index_gr_335.gif]

[Graphics:../Images/index_gr_336.gif]

106. Sfera. Disegnare la superficie parametrica:
    x = sin(t)cos(u), y = cos(t)cos(u), z = sin(u)   (tε[0,2π], uε[-π/2,π/2])

[Graphics:../Images/index_gr_337.gif]

[Graphics:../Images/index_gr_338.gif]

[Graphics:../Images/index_gr_339.gif]

107. Ellissoide. Disegnare la superficie parametrica:
  x=4sin(t)cos(u), y=9cos(t)cos(u), z=4sin(u)   (tε[0,2π], uε[-π/2,π/2])

[Graphics:../Images/index_gr_340.gif]

[Graphics:../Images/index_gr_341.gif]

[Graphics:../Images/index_gr_342.gif]

108. Iperboloide a una falda. Disegnare la superficie parametrica:
  x = 4sin(t)[Graphics:../Images/index_gr_343.gif], y = 9cos(t)[Graphics:../Images/index_gr_344.gif], z = u   
  (tε[0,2π], uε[-3,3])

[Graphics:../Images/index_gr_345.gif]

[Graphics:../Images/index_gr_346.gif]

[Graphics:../Images/index_gr_347.gif]

Complementi: grafici altimetrici e di densità, input e output.


Converted by Mathematica      March 1, 2003