API Java 2D
A API Java 2D permite mais capacidades para os gráficos/desenhos feitos em 2D, além dos detalhados neste artigo.
Obviamente, o visto na seção Gráficos e 2D foi apenas uma parte do que é possível em Java, e especificamente, com essa API.
Caso queira algo mais específico para as suas necessidades, você pode obter mais informações no site da documentação do Java, da Oracle:
Caso queira algo mais específico para as suas necessidades, você pode obter mais informações no site da documentação do Java, da Oracle:
Para usar a Java 2D API você terá que fazer uma referência ao pacote Graphics2D, que é uma subclasse da Graphics, que foi explodara nesse artigo. O objeto usado nos métodos 'paintComponent' são uma uma instância da subclasse da Graphics2D que é passada a esse método e acessada pela superclasse Graphics.
Alguns desenhos possíveis de serem feitos usando o pacote java.awt.geom:
- Linha em 2D : Line2D.Double
- Retângulo em 2D: Rectangle2D.Double
- Retângulo em 2D com bordas arredondadas: RoundRectangle2D.Double
- Arcos em 2D: Arc2D.Double
- Elipses em 2D: Ellipse2D.Double
Para usá-las, defina:
Graphics2D figura2D = ( Graphics2D ) g;
É possível criar essas formas com tipos float também.
Usando a Java 2D API é fácil criar formas que são pintadas com cores que mudam gradualmente, obtendo efeitos mais complexos de uma forma bem simples, apenas preenchendo os argumentos dos métodos de cada forma. Esse efeito de mudança é feito através da classe GradientPaint, exemplo:
figura2D.setPaint( new GradientPaint( 5, 30, Color.BLUE, 35, 100, Color.YELLOW, true ) );
figura2D.fill( new Ellipse2D.Double( 5, 30, 65, 100 ) );
Nesse caso, usamos o gradiente azul-amarelo pra pintar a elipse.
Até agora foi falado sobre o uso de formas pré-estabelecidas no Java.
Porém, é possível criar suas próprias formas de figuras, através da classe GeneralPath, da package java.awt.geom.
Com ela, é possível, por exemplo, criar figuras através de vetores de inteiros, que representam pontos dos eixos x e y.
Para criar uma figura:
Graphics2D fig = ( Graphics2D ) g;
GeneralPath fig = new GeneralPath();
Podemos usar os seguintes métodos:
fig.moveTo( int, int) ; fig.lineTo ( int [], int []) ; fig.closePath();
Onde colocamos a posição inicial, criamos ela e fechamos a figura.
Podemos usar um objeto da GeneralPath como argumento da fig2d:
fig2d.translate(int , int) ; fig2d.rotate (float) ; fig2d.setColor ( Color)
Onde podemos transladar a figura, rotacionar e pintá-la.
As figuras e formas são muitas, assim como os métodos para podermos fazer os mais diversos tipos de efeitos nos desenhos, por isso não cabe aqui mostrar todos os códigos e programas prontos.
Caso deseje algo específico, vá em busca da documentação.
E se precisar de ajudar, não hesite em perguntar no campo de Comentários ou fazendo Contato.
Um comentário:
Graphics2D fig = ( Graphics2D ) g;
GeneralPath fig = new GeneralPath();
Fica dizendo que ta duplicado a variavel fig.
Quando utilizo moveTo e lineTo não funciona pois o lineTo não aceita vetores como argumento.
Postar um comentário