Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-04-2008, 18:10   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c] mi servono numeri con piu cifre...

purtroppo costanti e variabili di questo programma (ad esempio const double Y1 = 0.6501800130615235 stanno iniziando ad essere troppo poco precise e il programma funziona peggio...
devo usare numeri con piu cifre, ma da come potete vedere devo usare e poter lavorare senza problemi con i numeri complessi...
come posso fare??

grazie mille per ogni aiuto!!!

Codice:
#include "ppm_image.h" 
#include <complex> 
#include <math.h> 
#include <windows.h> 

using namespace std; 


#define WIDTH  2000
#define HEIGHT 2000

#define DEPTH 4000
               
                 const double Y1 = 0.6501800130615235;
const double X0 = -0.0984813251342773;
                                 const double X1 = -0.0984810866699219;
                 const double Y0 = 0.6501797746582032;



unsigned int * hsv_rgb(unsigned int *);

int main() 
   { 

   complex<double> value, point; 

   double r, i, modulo; 
   long cnt; 
   
   //dati utili per colorare
   long cnt_tot=0, media_cnt=0, media_cnt_n=0, c_cnt=0;

    
   // Creo un'immagine vuota di dimensione WIDTH*HEIGHT 
   PpmImage img(WIDTH, HEIGHT); 

   for(int x=0; x<WIDTH; x++){ 
      r = X0+((double(x)*(X1-X0))/ double(WIDTH));       
      for(int y=0; y<HEIGHT; y++){ 
         i = Y0+((double(y)*(Y1-Y0))/double(HEIGHT)); 
         
         point = complex<double>(r,i); 
         value = point; 
          
         // iniziamo il ciclo 
         
         for(cnt=0; cnt<DEPTH; cnt++){ 
            value = value*value+point; 
            modulo = abs(value); 
            if(modulo>2)break; 
         } 
         

         if(modulo<=2){ 
            img.SetPixel(x,(HEIGHT-y),0,0,0); 
         } 
         else{ 
            // invece di disegnare un pixel bianco ne disegno uno colorato che dipende da cnt 
            unsigned int red, green, blue; //colore, contrasto, luminosità
               
            unsigned int *col;
            col = new unsigned int[3]; 
            unsigned int *col2;

            
            //cnt_tot=cnt_tot+cnt;
            //media_cnt_n++;
            c_cnt = cnt/4;
            
            red   = (c_cnt)%360; 
            green = 250; 
            blue  = 250;   

            if(red>359)   red=359; 
            if(green>255) green=255; 
            if(blue>255)  blue=255; 
            
            col[0]=red;
            col[1]=green;
            col[2]=blue;

            col2 = hsv_rgb(col);
            delete []col;            

            img.SetPixel(x, (HEIGHT-y), col2[0], col2[1], col2[2]); 
            delete []col2;
         } 
      } 
      printf("%d - %d%%\n",x,x*100/WIDTH);
   } 

   // Salvo l'immagine 
   img.SaveToFile("mandelbrot.ppm"); 
   
   //media_cnt=cnt_tot/media_cnt_n;
   //printf("cnt medio: %d\n",media_cnt);
   
   printf("zoom consigliati:\n\n");
   printf("(Y)\n");
   printf("1: %.16f\n",(double)Y1);
   printf("2: %.16f\n",(double)(((Y1+Y0)/2)+Y1)/2 );   
   printf("3: %.16f\n",(double)(Y1+Y0)/2);
   printf("4: %.16f\n",(double)(((Y1+Y0)/2)+Y0)/2 );      
   printf("5: %.16f\n",(double)Y0);   
   
   printf("\n(X)\n");
   printf("1: %.16f\n",(double)X0);
   printf("2: %.16f\n",(double)(((X0+X1)/2)+X0)/2 );   
   printf("3: %.16f\n",(double)(X0+X1)/2);
   printf("4: %.16f\n",(double)(((X0+X1)/2)+X1)/2 );      
   printf("5: %.16f\n",(double)X1);   
   
   system("pause");
   return 0;
}









unsigned int * hsv_rgb(unsigned int hsv[3]){
         
    //printf("REVERSE:\nH:%d\nS:%d\nV:%d\n",hsv[0],hsv[1],hsv[2]);          
    double *dRGB;
    dRGB = new double[3];    
    
    double H = ((double)hsv[0]);
    double S = ((double)hsv[1])/255;
    double V = ((double)hsv[2])/255;
    
    double hi = ((int)(H/60))%6;
    double f = (H/60) - (double)hi;
    double p = V*(1-S);
    double q = V*(1-(f*S));
    double t = V*(1-(1-f)*S);
    
    if (hi == 0){ dRGB[0]=V;dRGB[1]=t;dRGB[2]=p;}
    else if (hi == 1){ dRGB[0]=q;dRGB[1]=V;dRGB[2]=p;}
    else if (hi == 2){ dRGB[0]=p;dRGB[1]=V;dRGB[2]=t;}
    else if (hi == 3){ dRGB[0]=p;dRGB[1]=q;dRGB[2]=V;}
    else if (hi == 4){ dRGB[0]=t;dRGB[1]=p;dRGB[2]=V;}
    else if (hi == 5){ dRGB[0]=V;dRGB[1]=p;dRGB[2]=q;}
    else printf("ERRORE!");

    //printf("R:%f\nG:%f\nB:%f\n",dRGB[0],dRGB[1],dRGB[2]);
    
    unsigned int *RGB;
    RGB = new unsigned int[3];    
    
    RGB[0] = (int)(dRGB[0]*255);
    RGB[1] = (int)(dRGB[1]*255);
    RGB[2] = (int)(dRGB[2]*255);
    
    delete[]dRGB; 
    
    //printf("R:%d\nG:%d\nB:%d\n",RGB[0],RGB[1],RGB[2]);  
    return RGB;   
}
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 21-04-2008, 20:09   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se ti servono più cifre dovresti usare una qualche libreria che ti permetta di utilizzare numeri con precisione arbitraria. Per il C librerie di questo tipo sono un po' scomode da usare.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
Questa soluzione da 25 euro potrebbe riv...
ROG Xbox Ally X, gestire il processore c...
Pichai: 'Nessuno è immune da una ...
Alice Recoque: il nuovo supercomputer Ex...
Il Digital Networks Act non convince Fib...
Comprare una GPU sarà impossibile...
WeatherNext 2: il nuovo modello AI di Go...
OpenAI blocca l'orsacchiotto AI che parl...
Problemi di caricamento per mezza Intern...
Xiaomi TV F 65 a prezzo stracciato su Am...
Windows 10 si aggiorna ancora: rilasciat...
Doppio appuntamento annuale per gli iPho...
Dentro gli XMAGE Awards: abbiamo girato ...
Firewall for AI: così Akamai prot...
Nuova Twingo E-Tech Electric, svelato il...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v