Il 02/02/2016 20:54, Luca Alimandi ha scritto:
Mentre scrivevo gli ultimi post, ragionavo sul fatto che a
programmare per lo Spectrum si è rimasti veramente in pochi (io mi
tiro fuori perché scrivo giusto qualche routine e metto insieme
qualche idea, per cui non credo che mi si possa definire un
programmatore per lo ZX!... :-) ).
Soprattutto mi è venuto in mente il grande sforzo profuso da Enrico
per sviluppare e migliorare le sue routine matematiche, soprattutto
dal punto di vista della precisione.
Ora mi domandavo se, ai fini dello sviluppo di routine grafiche
ottimizzate, non sia più importante la *velocità *di calcolo
piuttosto che una grande *precisione*.
In un certo senso, penso che ci siano due diversi approcci: al fine
matematico (come ad esempio per il calcolo di immagini frattali, dove
si va a spaccare il capello scendendo a livelli inimmaginabili di
definizione) occorre privilegiare la precisione, altrimenti certi
calcoli nemmeno si possono effettuare.
Mentre per un fine prettamente grafico (ad esempio per i giochi o per
creare un'interfaccia grafica) la precisione forse non è così
importante quanto la velocità.
Da questo semplice ragionamento mi è scaturita la domanda: le routine
che, ad esempio, calcolano sin e cos per individuare i punti della
mia bella retta che ruota, possono essere ottimizzate in termini di
velocità, sapendo che lo scopo è esclusivamente calcolare la
posizione di un pixel sullo schermo e non, che so io, il punto di
atterraggio di un razzo su Marte? In sostanza, è possibile
specializzare alcuni tipi di calcoli all'utilizzo con la grafica
molto quantizzata dei pixel di uno schermo?
Ad esempio, un approccio più "ad hoc" potrebbe essere quello
(sparo!...) di creare delle tabelle pre-calcolate, che
velocizzerebbero certi tipi di conti, come il sin e cos e la tan, o
altre cose simili... (sicuramente sto inventando l'acqua calda, ma
può essere un'occasione per imparare cose nuove!) Enrico, tu che ti
sei già cimentato in cose del genere, cosa ne pensi?