VeganoQualunque snipped-for-privacy@newsgrouper.org.invalid> ha scritto:
Devo cercarla, ma per disegnare un cerchio non serve scomodare la trigonometria, esistono esistono algoritmi che lo fanno senza.
VeganoQualunque snipped-for-privacy@newsgrouper.org.invalid> ha scritto:
Devo cercarla, ma per disegnare un cerchio non serve scomodare la trigonometria, esistono esistono algoritmi che lo fanno senza.
alfio snipped-for-privacy@alfio.net ha scritto:
Buongiorno, dovrei calcolare un seno o un coseno con lo Z80, per disegnare una curva sullo schermo grafico che ho aggiunto al computer Z80 di Nuova Elettronica La routine per accendere un pixel tramite coordinate l'ho già scritta
Ho trovato questo codice ma ci sono alcune cose che non riesco a capire:
LD DE,12AFH ; Angle = -1.57079632679 (-90°)
Oppure fra questo valore fisso e il valore esadecimale?
LD HL,03B6AH ; x = FIXED(0.607252935..);
Forse la routine è troppo precisa per lo scopo che mi serve, ma al momento non ho trovato altro.
Un bel giorno VeganoQualunque digitò:
-1.571 corrisponde a -90 gradi in radianti (-pi/2).
Apparentemente la routine usa aritmetica fixed point a 32 bit, quindi carica il valore in B,C,D,E (che immagino siano registri dello Z80):
LD DE,12AFH ; Angle = -1.57079632679 (-90°) LD BC,9B78H
In particolare sembra usare la codifica fixed point Q2.30:
BCDE = 9B7812AFh = -1686629713
Poi lo dividi per il fattore di Q2.30 ossia 2^30:
-1686629713/2^30 = −1.570796327
Grazie, sarebbe interessante disegnare anche una circonferenza, ma al momento l'obiettivo sarebbe proprio tracciare la sinusoide
Ecco, questo è già un buon inizio, grazie. La routine penso di poterla analizzare, quello che mi manca sono proprio le conversioni.
Il 25/05/2026 09:51, VeganoQualunque ha scritto:
Se è solo per disegnare un grafico potresti fare una tabella, molto veloce nell'esecuzione.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required