Aumentar resolução usando Java 2D

4 respostas
Giacaboy

Pessoal, estou com um problema. Estou querendo melhorar a resolução do Java 2D para que as linhas não fiquem serrilhadas, como vcs podem ver na imagem abaixo (linha na diagonal dentro do balão vermelho). O código da função paintComponent para desenhar está abaixo. A parte do código que desenha a linha na diagonal vai da linha 33 até a 40. Para melhorar a resolução, estou usando o Graphics2D, da linha 11 até a 14 do código. Desse modo a resolução está em 300 (72/300 = 0.24). Porém, a linha na diagonal continua serrilhada (resolução de 300 não deveria estar) e eu posso aumentar a resolução que não melhora. Alguém consegue melhorar essa linha na diagonal? Obrigado

@Override
    public void paintComponent(Graphics g)
    {
        int y_inc = 0;

        Compasso compasso = this.getCompasso();

        Color cor = new Color(158,158,158);
        g.setColor(cor);

        Graphics g2 = g.create();
        g2.setColor(Color.BLACK);
        Graphics2D g2d = (Graphics2D)g2;
        g2d.scale(0.24,0.24);

        super.paintComponent(g);

        for(int i = 0; i < 5; i++)
        {
            if(compasso.getErro() == false) g.drawLine(0,67 + y_inc,919,67 + y_inc);
            else
            {
                g.setColor(cor);
                g.drawLine(0,67 + y_inc,compasso.getXInicio(),67 + y_inc);
                g.setColor(Color.RED);
                g.drawLine(compasso.getXInicio() - 10,67 + y_inc,compasso.getXFim() + 5,67 + y_inc);
                g.setColor(cor);
                g.drawLine(compasso.getXFim() + 5,67 + y_inc,919,67 + y_inc);
            }
            y_inc = y_inc + 6;
        }

        if(this.vetorLigacoes.size() > 0)
        {
            for(int i = 0; i < this.vetorLigacoes.size(); i++)
            {
                Ligacao l = (Ligacao)this.vetorLigacoes.get(i);
                for(int j = 0; j < 3; j++) g2.drawLine(l.getX1()*100/24,(l.getY1() - 16 + j)*100/24,l.getX2()*100/24,(l.getY2() - 16 + j)*100/24);
            }
        }
    }

[img]http://img693.imageshack.us/img693/7623/screeni.jpg[/img]

4 Respostas

pablosaraiva

Não é questão de resolução.

Pesquise sobre Anti-aliasing, vai te esclarecer.

pablosaraiva

Para ajudar.

Giacaboy

muuuito obrigado, cara. melhorou muito aqui

pablosaraiva

De nada! :smiley:

Criado 18 de novembro de 2009
Ultima resposta 19 de nov. de 2009
Respostas 4
Participantes 2