Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    calcolo con numeri decimali

    Con VBScript me la cavo benino, ma con C# non ci ho ancora capito niente... forse sarebbe ora di acquistare un manuale.

    Il mio problema è che non riesco a fare dei calcoli con numeri decimali.
    Ecco l'esempio, cerco di ridimensionare un'immagine ottenendo delle misure massime prestabilite e mantenendo le proporzioni reali. Questo è il codice:

    codice:
    // dimensioni massime
    int W = 80;
    int H = 64;
    
    // trova il fattore di riduzione in base alle dimensioni dell'immegine
    float x = Image.Width / W;
    if (x < Image.Height / H)
    { x = Image.Height / H; }
    
    // calcola le nuove dimensioni ridotte
    W = (int) (Image.Width / x);
    H = (int) (Image.Height / x);
    Il problema è che la variabile x all'interno delle 2 ultime formule sembra sempre avere valore intero, anche se dal calcolo precedente il risultato deve restituire un numero con dei decimali...
    Sicuramente ho sbagliato a definire le variabili, ma non riesco a trovare informazioni chiare su come gestire le variabili con questo linguaggio.
    (prometto di comprare un manuale al più presto!!!)
    ZZZzzz...

  2. #2
    Dai un'occhiata "Qui" dovrebbe fare al caso tuo


    codice:
     // Se le dimensioni dell'immagine corrispondono non facciamo nulla.
     // quindi se l'immagine è quadrata...
    if (tmpImage.Width != tmpImage.Height)
     {
     // Se l'immagine non è quadrata
     // continuiamo a fare i nostri controlli per calcolarne le 
     // giuste dimensioni e quindi creare la nostra nuova immagine con
     // l'aspectratio corretto.
    
     // Se l'immagine è più larga che alta
    if (tmpImage.Width > tmpImage.Height)
     {
      // L > H => L = tL
      // La larghezza del TN sarà quella da noi stabilita
      // quindi dobbiamo solo assegnarla.
      rThumbnailWidth = ThumbnailWidth;
      // L'altezza del TN invece dovrà essere ricalcolata 
      // in proporzione alla larghezza dell'immagine originale.
      // L > H => tH = (H * tL)/ L
      rThumbnailHeight = (double)((tmpImage.Height * ThumbnailWidth) / tmpImage.Width);
     } // if (tmpImage.Width > tmpImage.Height)
    else
     {
      // Altrimenti se l'immagine è più alta
      if (tmpImage.Width < tmpImage.Height)
       {
        // L < H => h = tH
        // L'altezza del TN sarà quella da noi stabilita
        // quindi dobbiamo solo assegnarla.
        rThumbnailHeight = ThumbnailHeight;
        // La larghezza del TN invece dovrà essere ricalcolata 
        // in proporzione alla altezza dell'immagine originale.
        // L < H => tL = (L * tH)/ H
        rThumbnailWidth = (double)((tmpImage.Width * ThumbnailHeight) / tmpImage.Height);
       } // if (tmpImage.Width < tmpImage.Height)
     } // else
    } // if (tmpImage.Width != tmpImage.Height)
    Richard B. Riddick : "Non avrete mica paura del buio?"

    Scusatemi ma sono mesi che non pago piu' la bolletta della luce....

  3. #3
    OK, cerco ti trarre qualche utile spunto.

    Grazie mille.

    ZZZzzz...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.