|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Quando hai finito fammi vedere il risultato |
|
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
sto approfondendo la conversione D/A; eppure mi sembrava semplicemente una tensione che variasse nel tempo
per quando riguarda la rotazione delle Bitmap, ho provato le funzioni tradizionali ma non sono sufficientemente performanti; molti esempi trovati in rete, si basano sull'uso della "ScanLine" poi con un pò di trigonometria ruotano pixel per pixel ho visto che la soluzione più perfrmante è: o l'uso dell'assemble oppure usare componenti freeware a quanto pare, ai giorni nostri c'è ben poco da inventare fa niente, usiamo tutto ciò che c'è a disposizione una mia riflessione: sei anche tu convinto che oggi la programmazione si divenuta l'arte di mettere insieme tutta quella nutrita serie di funzioni, componenti compresi, già scritte da altri? |
|
|
|
|
|
#23 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dipende a che livello si programma...quando devi fare in un'applicazione commerciale di alto livello riutilizzare componenti già fatti sta un po' male
Nelle piccole applicazioni commerciali o in quelle freeware recuperare codice già fatto è un bene...sia per il fatto che si impara qualcosa...sia perchè si fa prima Ah...lo sai come si fa per velocizzare le funzioni che usano la trigonometria ? Si fanno il seno e coseno cablati (anche se probabilmente lo fanno già i compilatori, ma magari con un grado di precisione più alto)... Ad esempio puoi fare un vettore di 360 elementi...uno per ogni grado con all'interno il valore del seno e del coseno per ogni grado... E' molto più veloce... |
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ho trovato la documentazione, come non detto
|
|
|
|
|
|
#26 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
ho trovato un metodo, alla larga dalle Opengl, non male si tratta di avere due matrici (x/y) atte a contenere un'immagine si fa una scansione in direzione Y e si assegnano i puntatori alla seconda matrice per i quali solo per la X ti calcoli la nuova posizione in definitiva, per un sistema di coordinate X/Y, la Y ti viene già ritornata dal loop di scansione delle Y, quindi, solo per la X, devi calcolarti la nuova posizione di dove dovrà essere disegnato il pixel non so se sono riuscito a farmi capire |
|
|
|
|
|
|
#27 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
All'incirca sì...comunque se mi mandi l'algoritmo mi farebbe piacere guardarlo un po'...
|
|
|
|
|
|
#28 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
cmq, penso che la tecnica si chiami rotazione di puntatori?
a te la sentenza do ancora una pelatina al codice e ti mostro il risultato |
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Aspetto con imazienza...
|
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
int xOrig , yOrig;
double Angolo, cosAngolo, sinAngolo; RGBTRIPLE *RigaOriginale, *RigaRuotata; Graphics::TBitmap *MiaBitmap = new Graphics::TBitmap; MiaBitmap->Width = Image1->Width; MiaBitmap->Height = Image1->Height; MiaBitmap->PixelFormat = pf24bit; for(int Gradi = 0; Gradi <= 360; Gradi++) { Angolo = -Gradi * M_PI/180; sinAngolo = sin(Angolo); cosAngolo = cos(Angolo); for ( int y = MiaBitmap->Height-1; y >= 0 ; y--) { RigaOriginale = (RGBTRIPLE*)Image1->Picture->Bitmap->ScanLine[y]; RigaRuotata = (RGBTRIPLE*)MiaBitmap->ScanLine[y]; for ( int x = BitmapRotated->Width-1; x >= 0; x--) { xOrig = int(x * cosAngolo - y * sinAngolo); yOrig = int(x * sinAngolo + y * cosAngolo); if ( (xOrig >= 0) && (xOrig <= Image1->Width-1) && (yOrig >= 0) && (yOrig <= Image1->Height-1) ) { RigaRuotata[x] = RigaOriginale[xOrig]; } else { RigaRuotata[x].rgbtBlue = 0; RigaRuotata[x].rgbtGreen = 0; RigaRuotata[x].rgbtRed = 0; } } } Image2->Picture->Bitmap = MiaBitmap; |
|
|
|
|
|
#31 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quanti FPS riesci a fare in quel modo ?
|
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
dipende dallo step dei gradi; cmq, non molti
cmq, io che ho un 1700, la rotazione avviene in modo fluido: peccato che il tutto è legato alla potenza di calcolo della CPU ecco perchè mi ero orientato verso le OpenGL ci vorrebbe un metodo che ruotasse un'intera riga senza scandire i singoli puntatori chissà se esiste, ma temo di no |
|
|
|
|
|
#34 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
pardon, mancava qualche libreria: ho corretto
|
|
|
|
|
|
#35 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#36 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Va bene (Tb @1200)...dopo tutto l'immagine è anche molto grande...
Quanti gradi di rotazione gli fai fare per ogni frame ? |
|
|
|
|
|
#37 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
1°
risposta breve |
|
|
|
|
|
#38 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ci credoc he va lento
Prova a fargli fare una rotazione in 25 frames... Così com'è ci emtte circa 3,5 secondi...ma fa 365 frames... Quindi dovrebbe fare circa 100 frame al secondo... Fagli fare una rotazione di 365/25 gradi...te la dovrebbe fare molto velocemente... Ed a quel punto puoi mettere una temporizzazione per rendere la velocità indipendente dalla CPU... |
|
|
|
|
|
#39 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ma la vedresti a scatti
|
|
|
|
|
|
#40 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non è detto... Hai provato a farla girare di 2 gradi alla volta ? Scatta ?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:51.



















