Ciao a tutti,
Pasquale ha scritto:Se ho compreso bene, voi dite che su un reticolo pixellato, tipo un monitor, se un raggio è lungo 5 pixel (o di dice pixels?) e lo pongo in rotazione, il suo estremo opposto al centro di rotazione traccia una circonferenza che sul monitor va materialmente ad illuminare (o colorare) 40 pixel, o se vogliamo, quell'estremo si scontra lungo il suo tragitto con 40 pixel (non uno in più, non uno in meno) ?
(Attenzione: frase modificata)
Sì, cioè NO, avevo scritto così ma poi ho corretto. (avevo scritto c=4r, poi, sbagliando, ho scritto pi=4, invece sarebbe pi=2 - se vogliamo mantenere la formula C=2*pi*r)
La risposta coerente sarebbe che tocchi 20 pixel.
In realtà ho verificato che sono un po' di più.
Pasquale ha scritto:Quando si dice "risoluzione 1024x768" che vuol dire? Non sono 1024 pixel sistemati su 768 righe?
Sono 768 righe da 1024 pixel ciascuna.
Oggi, i pixel sugli schermi di qualunque tipo, sono talmente piccoli, densi e possono assumere migliaia di colori perciò nessuno si accorge che esistono.
Alcune ere geolomatiche fa, precisamente all'inizio degli anni '80, avevo un computer Commodore VIC 20: 3,5Kb di RAM e schermo da 22x23 caratteri corrispondenti a una grafica di 176x184 pixel.
http://www.correggia.com/80/vic_20.htm
Quando questo computer era collegato a uno schermo TV analogica da circa 20 pollici, si capiva benissimo cosa era un pixel: una patacca quadrata sullo schermo.
A dire il vero, i pixel non erano quasi mai quadrati, ma più o meno rettangolari, a seconda di come si regolavano le ampiezze verticale/orizzontale dello schermo usando due manopoline poste dietro l'apparecchio TV o il monitor.
Il VIC"= non aveva la "grafica", ma poteva visualizzare solo testo. Però, smanettando molto in BASIC e linguaggio macchina, si poteva riuscire a far accendere o spegnere ogni pixel sullo schermo.
Questa era l'unica risorsa: accendere o spegnere i singoli pixel in una griglia 176x184.
L'unica aritmetica che si usa in questa situazione è quella dei numeri interi positivi e lo 0.
Infatti ogni pixel è individuato da due numeri interi, che sarebbero le sue coordinate cartesiane.
Veramente le cose sono più complicate. Infatti l'immagine dello schermo (bidimensionale) deve essere memorizzata nella memoria RAM alla quale si accede come se fosse una unica lista di byte = 8 bit (monodimensionale)
Per esempio, se ad ogni pixel associamo 1 byte, allora lo schermo di 176x184 pixel corrisponde a una lista di 32384 (32k) byte. Per far accendere un pixel sullo schermo, devo modificare il corrispondente byte della memoria RAM.
Quindi per passare dal mono- al bi- c'è bisogno di una ulteriore elaborazione.
La domanda sorge spontanea:se il VIC20 aveva 3,5k di RAM, come poteva visualizzare una grafica da 32k? Non poteva.
Il fatto è che ad ogni pixel, si doveva associare non 1 byte ma soltanto 1 bit. Così il pixel poteva assumere soltanto 2 colori: acceso/spento.
In questo modo, la grafica da 32384 pixel stava in 32384/8 = 4048 byte. E' ancora troppo per la memoria del VIC, perciò bisognava ridurre leggermente le dimensioni dello schermo grafico.
Ecco, ora posso venire al dunque.
In questa situazione, con un unico comando a disposizione: accendi/spegni il pixel di coordinate x,y sorgevano i seguenti problemi:
a) come faccio a disegnare un segmento?
b) come faccio a disegnare una circonferenza? e un cerchio?
E' stato qui che ho scoperto l'acqua calda: per disegnare una circonferenza di raggio r pixel si devono accendere poco più di 5r pixel.
Spero di non avervi annoiato.
Se vogliamo andare nel preciso, dovremmo metterci a scrivere equazioni ma ora, purtroppo, non ho tempo.
Comunque allego alcuni disegni utili per vare delle prove.
Sono fatti con l'algoritmo di Paint per disegnare cerchi.
Pace e bene a tutti.
Gianfranco