Classe para conversão de medidas (distâncias)

0 respostas
Dieval_Guizelini

Senhores,

preciso medir imagens em tela, com base na resolução do monitor e apresentar as medidas em alguns sistemas, vocês conhecem alguma forma melhor de fazer isso?

import java.awt.Toolkit;
import java.util.Arrays;

public class SistemaMedida {
    public final static int PIXELS_POR_POLEGADA = Toolkit.getDefaultToolkit().getScreenResolution();
    public static final SistemaMedida YARD         = new SistemaMedida("yard", 36d );
    public static final SistemaMedida FEET         = new SistemaMedida("feet", 12d );
    public static final SistemaMedida INCH         = new SistemaMedida("inch", 1d );
    public static final SistemaMedida METRO        = new SistemaMedida("m",  39.3700787402d );
    public static final SistemaMedida CENTIMETRO   = new SistemaMedida("cm",  0.393700787402d );
    public static final SistemaMedida MILIMETRO    = new SistemaMedida("mm",  0.00393700787402d );

    private SistemaMedida(String label, double unidadesPorPolegada ) {
        this.label = label;
        this.pixelsPorUnidade = unidadesPorPolegada * PIXELS_POR_POLEGADA;
    }

    public int getPixels(double valor, SistemaMedida referencia ) {
        double result = valor * referencia.pixelsPorUnidade;
        return (int)Math.floor(result);
    }

    public double getValue(int pixels, SistemaMedida referencia) {
        return (double)pixels / referencia.pixelsPorUnidade;
    }
    
    public java.util.List<SistemaMedida> getSistemas() {
        SistemaMedida[] array = new SistemaMedida[] { YARD, FEET, INCH, METRO, CENTIMETRO, MILIMETRO };
        java.util.List<SistemaMedida> colecao = Arrays.asList(array);
        return colecao;
    }
    
    @Override
    public String toString() {
        return label;
    }

    private double pixelsPorUnidade = 0d;
    private String label;
}

vw

Criado 13 de março de 2009
Respostas 0
Participantes 1