Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524

    [Java2D Scale]: Fattore di proporzione

    Ciao a tutti!

    Come si calcola il fattore proporziale dello scale di un AffineTransform?

    So che 1 sta alla misura corrente, 2 al doppio.

    Il problema è che non riesco a calcolarla dati due numeri.

    ad esempio: ho un'immagine larga 400 pixel, la vorrei scalare a 30 pixel di larghezza,
    quale calcolo matematico devo utilizzare per trovare il fattore proporzionale, che sia il più preciso possibile?

    Grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    1:x=400:30
    x=1*30/400=0,075

  3. #3
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Originariamente inviato da simo7784
    1:x=400:30
    x=1*30/400=0,075
    Grazie infinite! Ma in codice Java?

  4. #4
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Codice PHP:

    double fattore
    (int aint b){
        
           
    double r = (1*b)/(a);
           
    System.out.println("Fattore proporzionale ("+a+","+b+"): "+r);
           return 
    r
         
    }

    // Esce sempre 0:
    // fattore(70, 48) = 0.0 
    Dov'è l'errore?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    double dimensioniPreScale = 400;
    double dimensioniPostScale = 30;
    double FattoreDiScala = dimensioniPreScale/dimensioniPostScale;
    tuaAffineTrasf.scale(FattoreDiScala, FattoreDiScala);
    EDIT: Per la tua seconda domanda, tu stai facendo una divisione tra interi quindi essendo 70>48, il risultato della divisione intera e' naturalmente 0. Poi assegni il risultato alla variabile double, ma ormai hai gia' subito una perdita' di precisione (non hai piu' le cifre decimali).
    Come tipo dei parametri del metodo metti double.

  6. #6
    Utente di HTML.it L'avatar di Neocron
    Registrato dal
    Jul 2002
    Messaggi
    524
    Grazie infinite!

    Riporto il codice, affinché possa essere utile per qualcuno in futuro.


    codice:
    double fattoreProporzionale (double x, double x1){ 
         
           return x1/x; 
      
    }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.