Liverpool” post=72127[…] con le curve di Bézier servono meno punti in più che con l’interpolazione lineare per ottenere generalmente buoni risultati con un modesto incremento della memoria. Se è così siamo d’accordo, tranne che per le obiezioni sollevate all’inizio […].
Sono d’accordo, vediamo un semplice esempio:
`\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [
domain=0:360,
variable=\t,
% samples=200,
% samples=50,
% smooth,
color=blue,
style=thick,
]
({sin(7*t)}, {sin(2*t)});
\end{axis}
\end{tikzpicture}
\end{document}`
Se compilate questo documento così com’è, vedrete che la curva di Lissajous è resa in modo inaccettabile. Per avere un risultato decente, le strade sono due:
1. aumentare molto “samples”: “samples=50” non basta (provare per credere), occorre almeno “samples=200”;
2. usare “smooth” con “samples=50”.
Nel primo caso non si introduce alcuna ipotesi di regolarità sulla curva, ma occorre un numero di campioni molto elevato; nel secondo caso si introduce l’ipotesi di regolarità (che è vera, per la funzione in questione) e si ottiene un ottimo risultato anche senza spingere molto su “samples”. In base alla mia poca esperienza, se si ha a che fare con funzioni definite analiticamente che siano “regolari” (polinomi, seni, coseni, esponenziali, logaritmi, …) dare “smooth” funziona sempre e aiuta a ridurre drasticamente “samples”.
Faccio i complimenti a Liverpool per il controesempio che mostra che le spline non sono sempre indicate . D’altra parte, stiamo parlando di interpolazione (sia lineare sia con spline cubiche): interpolare vuol dire che un (certo) errore lo si commette sempre. Si tratta di minimizzarlo.
Riguardo agli errori di sforamento della memoria, ci sono eccome, se si vogliono molti grafici ad alta risoluzione: l’esempio che ho postato qualche intervento fa mi sembra significativo. Ci sono poche decine di grafici in tutto: le curve sono tutte con “samples=40” o “samples=50” (che non è una tragedia); le superfici le ho dovute mettere tutte con “samples=30”: mi basta portarne anche una sola a “samples=40”, e ottengo l’errore di sforamento della memoria.
Qualche altra domanda:
1.
Mi confermate che l’opzione “shader=interp” è l’equivalente di “smooth” nel caso di superfici tridimensionali?
2.
Qual è la chiave corrispondente al valore “thick”? In altre parole: “blue” è come dire “color=blue”; “thick” a che cosa è equivalente?
3.
Qual è la chiave corrispondente di “smooth”?
4.
Riguardo al procedimento per ottenere la Gamma di Eulero partendo da Mathematica, ho seguito per filo e per segno le istruzioni di Liverpool, ma ottengo qualcosa di inaspettato:

La Gamma non mi va bene per due ragioni:
1. le rette verticali in blu (sembra che facciano parte della curva!);
2. le proporzioni: no capisco perché il grafico venga così piccolo, rispetto a tutti gli altri (vedi il confronto con i due grafici di sopra).
Grazie,
L.