SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Java
             Gráficos em 2D

             Amílcar Cardoso
             Dep. Engª. Informática
             Universidade de Coimbra
             http://www.dei.uc.pt/amilcar
             amilcar@dei.uc.pt




© Amílcar Cardoso, 2012
Aplicações versus Applets
          Aplicação
                 Pode ser executada autonomamente
          Applet
                 Tem que ser executada num Browser ou num “Applet
                  viewer”
                 Para integrar numa página HTML:
                          HTML:<TITLE>Applet title</TITLE>
                           <APPLET CODE=Nome.class WIDTH=100 HEIGHT=100>
                           </APPLET>


      Tutorial interessante: http://www.dgp.toronto.edu/~mjmcguff/learn/java/

                                       Programação e Estruturas de Dado         2
© Amílcar Cardoso, 2012
Ecrã gráfico
          Coordenadas:
                                            x
                                   (0, 0)
                                    y




                             Em Java: g.drawLine(10, 50, 35, 80);


                    Comando (método):                        ...entre o
                                                                              ...e o ponto (35, 80)
                   desenhar uma linha...                  ponto (10, 50)...

                                        Programação e Estruturas de Dado                       3
© Amílcar Cardoso, 2012
Desenho numa Applet

               import java.awt.*;                                                  Importar bibliotecas
               import java.applet.Applet;

                                                                                    classe “linha” é sub-classe
               public class linha extends Applet {                                  de Applet
                          public void paint (Graphics g) {
                                    g.drawLine (0,0,100,100);
                                                                                       Desenha uma linha entre
                          }                                                           os pontos (0,0) e (100,100)
               }

                                                                            g representa a área de desenho
      Numa Applet para desenho,
      a execução começa no método paint


                                         Programação e Estruturas de Dado                                           4
© Amílcar Cardoso, 2012
Classe Graphics


          Permite definir Objetos Gráficos
          Principais atributos descrevem:
                 cor de fundo
                 cor do bordo
                 fonte para texto
                 translação
                 Objeto onde é feito o desenho



                                  Programação e Estruturas de Dado   5
© Amílcar Cardoso, 2012
Alguns métodos gráficos



                                  retângulo                                              oval
                          g. drawRect(15, 15, 40, 30);                        g. drawOval(15, 15, 40, 30);




          linha                                     retângulo arredondado
g.drawLine(15, 10, 36, 40);                 g. drawRoundRect(15, 15, 40, 30, 5, 5);




                                           Programação e Estruturas de Dado                              6
© Amílcar Cardoso, 2012
Mais métodos gráficos
          drawArc (int x, int y, int w, int h, int st, int arc)
                 Ex.: g.drawArc (10, 20, 60, 50, -45, 90);




          drawString (String s, int x, int y)
                    Ex.: g.drawString ("Olá!", 10, 40);

          setColor (Color c)
                 Ex.: g.setColor (Color.blue);
                         Cores pré-definidas: black, blue, cyan, darkGray, gray, green,
                          lightGray, magenta, orange, pink, red, white, yellow

                                           Programação e Estruturas de Dado               7
© Amílcar Cardoso, 2012
Alguns métodos gráficos
          fillRect (int x, int y, int w, int h)
          fillOval (int x, int y, int w, int h)
          fillArc (int x, int y, int w, int h, int st, int arc)
                    Ex.:
                     	      g.setColor (Color.yellow);
                     	      g.fillRect (10, 20, 90, 50);
                     	      g.setColor (Color.black);
                     	      g.drawRect (10, 20, 90, 50);
                     	                   (10, 20)

                                                                 50

                                                      90

                                      Programação e Estruturas de Dado   8
© Amílcar Cardoso, 2012
Dimensão da janela
          Para se definir a dimensão da janela da Applet:

                          int apWidth=200, apHeight=200;

                          public void paint(Graphics g) {

                               this.setSize(apWidth, apHeight);
                               (...)


                               método da classe Applet




                                        Programação e Estruturas de Dado   9
© Amílcar Cardoso, 2012
Dimensão da janela
          Para se obter a dimensão da janela da Applet:
                                                                              this: classe a que pertence
                                                                              o método que está a correr
                          public void paint(Graphics g) {                              (a Applet)

                           Dimension appletSize = this.getSize();
                           int appletHeight = appletSize.height;
                                                                                getSize é um método da Applet
                           int appletWidth = appletSize.width;
Objeto appletSize da
 classe Dimension
                           (...)

                                                          height e width são dois
                                                            atributos do objeto
                                                                 appletSize




                                      Programação e Estruturas de Dado                                      10
© Amílcar Cardoso, 2012
Exemplo
          Desenhar esta figura:



                                                                          50




                                                                          100




                                                                          150




                                                       50     100   150




                           Programação e Estruturas de Dado                     11
© Amílcar Cardoso, 2012
Código
  public class Figura extends Applet {
    int apWidth=200, apHeight=200;

      public void paint(Graphics g) {
        this.setSize(apWidth, apHeight);
                                                                          g.setColor(cinza1);
           Color cinza1 = new Color(200,200,200);                         g.fillOval(0,0,200,200);
           Color cinza2 = new Color(150,150,150);                         g.setColor(cinza2);
           Color cinza3 = new Color(100,100,100);                         g.fillOval(0,0,150,150);
           Color cinza4 = new Color(60,60,60);                            g.setColor(cinza3);
                                                                          g.fillOval(0,0,100,100);
                                                                          g.setColor(cinza4);
                                                                          g.fillOval(0,0,50,50);
                                                                      }



                                   Programação e Estruturas de Dado                                 12
© Amílcar Cardoso, 2012

Mais conteúdo relacionado

Semelhante a Programação e Estruturas de Dados - Lic. Design e Multimédia

Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 
Introducao a Linguagem Kotlin
Introducao a Linguagem KotlinIntroducao a Linguagem Kotlin
Introducao a Linguagem KotlinCalebeMiquissene
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
Auto cad introdução à plataforma 2d-rev01
Auto cad   introdução à plataforma 2d-rev01Auto cad   introdução à plataforma 2d-rev01
Auto cad introdução à plataforma 2d-rev01Diego Siqueira de Lima
 
Processing-introducao
Processing-introducaoProcessing-introducao
Processing-introducaofatecjd
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Jonathan Filho
 

Semelhante a Programação e Estruturas de Dados - Lic. Design e Multimédia (20)

Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Introducao a Linguagem Kotlin
Introducao a Linguagem KotlinIntroducao a Linguagem Kotlin
Introducao a Linguagem Kotlin
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Series lab
Series labSeries lab
Series lab
 
Modulo02
Modulo02Modulo02
Modulo02
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Auto cad introdução à plataforma 2d-rev01
Auto cad   introdução à plataforma 2d-rev01Auto cad   introdução à plataforma 2d-rev01
Auto cad introdução à plataforma 2d-rev01
 
Estruturas
EstruturasEstruturas
Estruturas
 
Processing-introducao
Processing-introducaoProcessing-introducao
Processing-introducao
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017
 
JavaME - Aula 2
JavaME - Aula 2JavaME - Aula 2
JavaME - Aula 2
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 

Programação e Estruturas de Dados - Lic. Design e Multimédia

  • 1. Java Gráficos em 2D Amílcar Cardoso Dep. Engª. Informática Universidade de Coimbra http://www.dei.uc.pt/amilcar amilcar@dei.uc.pt © Amílcar Cardoso, 2012
  • 2. Aplicações versus Applets  Aplicação  Pode ser executada autonomamente  Applet  Tem que ser executada num Browser ou num “Applet viewer”  Para integrar numa página HTML: HTML:<TITLE>Applet title</TITLE> <APPLET CODE=Nome.class WIDTH=100 HEIGHT=100> </APPLET> Tutorial interessante: http://www.dgp.toronto.edu/~mjmcguff/learn/java/ Programação e Estruturas de Dado 2 © Amílcar Cardoso, 2012
  • 3. Ecrã gráfico  Coordenadas: x (0, 0) y Em Java: g.drawLine(10, 50, 35, 80); Comando (método): ...entre o ...e o ponto (35, 80) desenhar uma linha... ponto (10, 50)... Programação e Estruturas de Dado 3 © Amílcar Cardoso, 2012
  • 4. Desenho numa Applet import java.awt.*; Importar bibliotecas import java.applet.Applet; classe “linha” é sub-classe public class linha extends Applet { de Applet public void paint (Graphics g) { g.drawLine (0,0,100,100); Desenha uma linha entre } os pontos (0,0) e (100,100) } g representa a área de desenho Numa Applet para desenho, a execução começa no método paint Programação e Estruturas de Dado 4 © Amílcar Cardoso, 2012
  • 5. Classe Graphics  Permite definir Objetos Gráficos  Principais atributos descrevem:  cor de fundo  cor do bordo  fonte para texto  translação  Objeto onde é feito o desenho Programação e Estruturas de Dado 5 © Amílcar Cardoso, 2012
  • 6. Alguns métodos gráficos retângulo oval g. drawRect(15, 15, 40, 30); g. drawOval(15, 15, 40, 30); linha retângulo arredondado g.drawLine(15, 10, 36, 40); g. drawRoundRect(15, 15, 40, 30, 5, 5); Programação e Estruturas de Dado 6 © Amílcar Cardoso, 2012
  • 7. Mais métodos gráficos  drawArc (int x, int y, int w, int h, int st, int arc)  Ex.: g.drawArc (10, 20, 60, 50, -45, 90);  drawString (String s, int x, int y)  Ex.: g.drawString ("Olá!", 10, 40);  setColor (Color c)  Ex.: g.setColor (Color.blue);  Cores pré-definidas: black, blue, cyan, darkGray, gray, green, lightGray, magenta, orange, pink, red, white, yellow Programação e Estruturas de Dado 7 © Amílcar Cardoso, 2012
  • 8. Alguns métodos gráficos  fillRect (int x, int y, int w, int h)  fillOval (int x, int y, int w, int h)  fillArc (int x, int y, int w, int h, int st, int arc)  Ex.: g.setColor (Color.yellow); g.fillRect (10, 20, 90, 50); g.setColor (Color.black); g.drawRect (10, 20, 90, 50); (10, 20) 50 90 Programação e Estruturas de Dado 8 © Amílcar Cardoso, 2012
  • 9. Dimensão da janela  Para se definir a dimensão da janela da Applet: int apWidth=200, apHeight=200; public void paint(Graphics g) { this.setSize(apWidth, apHeight); (...) método da classe Applet Programação e Estruturas de Dado 9 © Amílcar Cardoso, 2012
  • 10. Dimensão da janela  Para se obter a dimensão da janela da Applet: this: classe a que pertence o método que está a correr public void paint(Graphics g) { (a Applet) Dimension appletSize = this.getSize(); int appletHeight = appletSize.height; getSize é um método da Applet int appletWidth = appletSize.width; Objeto appletSize da classe Dimension (...) height e width são dois atributos do objeto appletSize Programação e Estruturas de Dado 10 © Amílcar Cardoso, 2012
  • 11. Exemplo  Desenhar esta figura: 50 100 150 50 100 150 Programação e Estruturas de Dado 11 © Amílcar Cardoso, 2012
  • 12. Código public class Figura extends Applet { int apWidth=200, apHeight=200; public void paint(Graphics g) { this.setSize(apWidth, apHeight); g.setColor(cinza1); Color cinza1 = new Color(200,200,200); g.fillOval(0,0,200,200); Color cinza2 = new Color(150,150,150); g.setColor(cinza2); Color cinza3 = new Color(100,100,100); g.fillOval(0,0,150,150); Color cinza4 = new Color(60,60,60); g.setColor(cinza3); g.fillOval(0,0,100,100); g.setColor(cinza4); g.fillOval(0,0,50,50); } Programação e Estruturas de Dado 12 © Amílcar Cardoso, 2012