SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Introdução à Programação Gráfica
com Processing
Notas para a Formação @ Audiência Zero

Pedro Amado
Porto, 2008-03-22




          Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-Comercial-
          Partilha nos termos da mesma Licença 2.5 Portugal. Para ver uma cópia desta licença, visite http://
          creativecommons.org/licenses/by-nc-sa/2.5/pt/ ou envie uma carta para Creative Commons, 559
          Nathan Abbott Way, Stanford, California 94305, USA.
2 / 45




Qualquer correcão ou sugestão:
pedamado@gmail.com

Para mais informações e slides da sessão:
http://pedamado.googlepages.com
http://pedamado.wordpress.com/2008/03/22/processing-
audiencia-zero/

Manual da formação original disponível aqui:
http://www.box.net/shared/n3ew1kqskc

Ficheiros e Exemplos:
http://www.box.net/shared/f0rhr90ws8




     Pedro Amado, 2008-03-18        Notas para a Formação de Introdução à Programação com Processing
3 / 45




Resumo
As presentes notas servem de apoio às sessões (2) de
formação em Introdução à programação Gráfica com
Processing na Audiência Zero.

Esta não é uma sessão de aprendizagem em programação!

A formação consiste:
•	Elementos fundamentais de programação,
•	Exposição de exemplos de artistas conceituados
•	Desafios para criar aplicações interactivas com um grau
  sucessivo de independência
•	Uma aplicação gráfica interactiva



     Pedro Amado, 2008-03-18         Notas para a Formação de Introdução à Programação com Processing
4 / 45




Dia 1
Apresentação
Pedro Amado
Mestre em Arte Multimédia (2007)
Licenciatura em Design de Comunicação (2002).

Assistente Convidado no Departamento de Arte e
Comunicação (DeCA) da Universidade de Aveiro (UA) onde
lecciona Multimédia.

Técnico Superior de Design na Faculdade de Belas Artes da
Universidade do Porto (FBAUP 2003-2007)


     Pedro Amado, 2008-03-18        Notas para a Formação de Introdução à Programação com Processing
5 / 45




Introdução
Público-Alvo
Alunos de Design de Comunicação (Designers);
Alunos de Artes Plásticas (Artistas);
Pessoas interessadas em Multimédia Digital (Toda a gente).

Requisitos?
Curiosidade!

Porquê programar?
Um programa é um jogo de algoritmos construídos para
resolver ou simplificar um problema.
Because an artist is expected to understand his/her medium.
Because this is true digital design.


     Pedro Amado, 2008-03-18         Notas para a Formação de Introdução à Programação com Processing
6 / 45




Porquê o Processing?
 1. Open Source
 2. Versão Beta (ainda) o que o torna ideal
 3. Multi-plataforma. MacOS, Win, Unix.
 4. Poder do JAVA
   a. Simples*
   b. Adequa-se ao processo de ensino*
   c. Faz uma boa transição entre linguagens de baixo
      nível e scripting de muito alto nível;
   d. Documentação extensa.
      Há diversos websites dedicados à programação,
      especialmente em JAVA e muitos dedicados ao
      Processing – ver a secção de links;
   e. (muito) Extensível
 5. Exporta Executáveis e Applets para a Web
 6. Comunidade

     Pedro Amado, 2008-03-18       Notas para a Formação de Introdução à Programação com Processing
7 / 45




Como obter e usar: Download & Install



Site:
http://www.processing.org/

Download:
http://www.processing.org/download/index.html

Documentação:
http://www.processing.org/reference/index.html

Aprendizagem:
http://www.processing.org/learning/index.html


     Pedro Amado, 2008-03-18      Notas para a Formação de Introdução à Programação com Processing
8 / 45




IDE(PDE)




App01, Hello World!




        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
9 / 45




Do Algoritmo à arte (conceptual) e vice-versa. O desenho
como um processo racional
Concept art is a form of illustration where the main goal is to
convey a visual representation of a design, idea, and/or mood
for use in movies, video games, or comic books before it is put
into the final product.

The idea becomes a machine that makes the art. – Sol LeWitt,
“Paragraphs on Conceptual Art”, Art Forum, 1967.




      Pedro Amado, 2008-03-18          Notas para a Formação de Introdução à Programação com Processing
10 / 45




Exemplos
Ben Fry
Anemone, 2005
Valence, 1999



Casey Reas
Ti, 2004
Process 4, 2005
Articulate, 2004



Martin Wattenberg
Thinking Machines 4, 2001-04




           Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
11 / 45




Alternativas ao Processing
Flash
http://www.adobe.com/

NodeBox
http://nodebox.net/code/index.php/Home

Scriptographer
http://www.scriptographer.com/

Max/MSP
http://www.cycling74.com/products/maxmsp

PureData
http://puredata.info/

     Pedro Amado, 2008-03-18     Notas para a Formação de Introdução à Programação com Processing
12 / 45




SmallTalk / Squeak
http://www.squeak.org/

Flex
http://flex.org/ | http://labs.adobe.com/technologies/flex/

MS Silverlight
http://silverlight.net/

JAVA
http://java.sun.com/

OpenFrameworks
http://openframeworks.cc/

( C++ http://www.cplusplus.com/ )

      Pedro Amado, 2008-03-18        Notas para a Formação de Introdução à Programação com Processing
13 / 45




Conceitos Gerais de Programação
Algoritmia
Um algoritmo pode ser descrito usando várias linguagens
ou línguas:

– Português;
– Pseudo-código, é uma linguagem entre a linguagem
 natural e uma linguagem de programação;
– Fluxogramas, descrição gráfica de um algoritmo;
– Linguagem de Programação




     Pedro Amado, 2008-03-18       Notas para a Formação de Introdução à Programação com Processing
14 / 45




Lógica e Sintaxe
Um programa pode ser analisado segundo duas
perspectivas:

–Sintaxe: o código está de acordo com as regras gramaticais
da linguagem de programação utilizada?
–Lógica: o código executa aquilo que nós pretendemos?

Um programa pode estar sintacticamente correcto (regra
geral o compilador detecta estes erros), mas logicamente
estar errado.

Nível de detalhe...




      Pedro Amado, 2008-03-18        Notas para a Formação de Introdução à Programação com Processing
15 / 45




Comentários e Documentação
Sintaxe introduzida: //, /* */




App02, Comentários



Expressões, instruções e terminadores
Sintaxe introduzida: ;




       Pedro Amado, 2008-03-18    Notas para a Formação de Introdução à Programação com Processing
16 / 45




Sensibilidade à caixa (Mm)
O Processing é sensível ao uso de maiúsculas e de
minuúsculas. Escrever “minúsculas” NÂO é a mesma coisa
que escrever “MINUSCULAS”.

Espaço em branco
O Processing é insensível ao espaço em branco entre
funções, expressões e/ou literais.

Funções e callbacks
Sintaxe introduzida: () {}
Conceitos introduzidos: Função, Parâmetros, Índice de
acesso, Bloco de código




     Pedro Amado, 2008-03-18         Notas para a Formação de Introdução à Programação com Processing
17 / 45




Consola e mensagens
Sintaxe introduzida: print(), println();
Conceitos introduzidos: Consola, Debug, Função, Mensagem




App04, Print



Dados/Literais

(Inserir diagrama dos elementos do código)



        Pedro Amado, 2008-03-18      Notas para a Formação de Introdução à Programação com Processing
18 / 45




Coordenadas
Sintaxe introduzida: size();

                        Processing uses a Cartesian coordinate
                        system with the origin in the upper-
                        left corner. If your program is 320 pixels
                        wide and 240 pixels high, coordinate [0,
                        0] is the upper-left pixel and coordinate
                        [320, 240] is in the lower-right. The
last visible pixel in the lower-right corner of the screen is at
position [319, 239] because pixels are drawn to the right and
below the coordinate.




      Pedro Amado, 2008-03-18            Notas para a Formação de Introdução à Programação com Processing
19 / 45




Primitivas
Sintaxe introduzida:
point(), line(), rect(), ellipse(), bezier()




           App05, Primitivas


Sintaxe Extra:
quad(),curve(), rectMode(), ellipseMode(),
curveVertex(), bezierVertex();



           App06, Bezier



    Pedro Amado, 2008-03-18    Notas para a Formação de Introdução à Programação com Processing
20 / 45




Cor
Sintaxe introduzida:
background(), fill(), stroke(), noFill(),
noStroke()

Sintaxe Extra:
color()

Conceitos: RGB+A (Alpha)




            App07, Cor




     Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
21 / 45




Atributos/Modos de Desenho
Sintaxe introduzida:
smooth(), strokeWeight(), strokeCap(),

Sintaxe Extra:
ellipseMode(), rectMode()




           App08, Atributos




    Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
22 / 45




Variáveis e Tipos de Dados
Todos os dados armazenados em memoria e ou
manipulados pelo computador tem uma natureza
específica.

Os valores/variáveis utilizadas nas operações têm de ser
compatíveis – Têm de ser do mesmo tipo

Simples
  Tipos simples são tipos cujos valores são atómicos, i.e.,
  não podem ser decompostos

  Numérico
  - Inteiro
  - Real


     Pedro Amado, 2008-03-18          Notas para a Formação de Introdução à Programação com Processing
23 / 45




  Alfanumérico (cadeia de caracteres ou string)
  “1” (string) é diferente de 1 (número)

  Lógico (verdadeiro ou falso - boolean)

Compostos(Complexos)*
  Tipos complexos são tipos compostos por vários
  elementos simples:

   Vector (Array em inglês – não confundir com a palavra
   inglesa vector): uma lista de elementos do mesmo tipo
   que podem ser acedidos via um índice.

   Matriz: vector multi-dimensional;

   Estrutura (Struct): agregação de vários tipos de dados;

     Pedro Amado, 2008-03-18           Notas para a Formação de Introdução à Programação com Processing
24 / 45




Tipos de variáveis
Sintaxe introduzida:
int, float, boolean, char, String*

                               App09, Variaveis



                               Declarar e inicializar (Strict Typing)
                               Sintaxe introduzida: = //atribuir

                               Visibilidade (Scope)*
                               Conceitos introduzidos: Global e Local

Variáveis do Processing*
Sintaxe introduzida: width, height


     Pedro Amado, 2008-03-18                       Notas para a Formação de Introdução à Programação com Processing
25 / 45




Conversão de dados*
Sintaxe introduzida:
boolean(), byte(), char(), int(), float(),
str()

(Inserir App aqui?)




Operadores
Aritméticos
Sintaxe introduzida: +, -, *, /, %

App10, Operadores Aritméticos




         Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
26 / 45




Precedência
Sintaxe introduzida: ()

Abreviações*
++,--,+=, -=, *=, /=, -

App11, Abreviações



Restrições*
Sintaxe introduzida:
ceil(), floor(), round(), min(), max()

App12, Restrições




         Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
27 / 45




Operadores Relacionais
Sintaxe introduzida:
>, <, >=, <=, ==, !=

App13, Operadores Relacionais



Operadores Condicionais*
If, else, {}

App14, Operadores Condicionais



Operadores Lógicos
Sintaxe introduzida:
||, &&, !

App15, Operadores Lógicos

        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
28 / 45




Estrutura de um programa
Modo Simples (Básico)

This mode is used drawing static images and learning
fundamentals of programming. Simple lines of code have a
direct representation on the screen.


Modo Contínuo
Sintaxe introduzida:
setup(), draw(), frameRate(), frameCount(),
loop(), noLoop(), redraw()

Conceitos introduzidos: Bloco de Código, Callbacks, Funções,
Visibilidade das variáveis


     Pedro Amado, 2008-03-18         Notas para a Formação de Introdução à Programação com Processing
29 / 45




This mode provides a setup() structure that is run once when
the program begins and a draw() structure which by default
             continually loops through the code inside. This
             additional structure allows writing custom
             functions and classes and using keyboard and
             mouse events.

                        App16, Modo Contínuo



Condições (e blocos de código)
Sintaxe introduzida:
if(), else(), {}, switch()*, case*

App17, Condições




        Pedro Amado, 2008-03-18                Notas para a Formação de Introdução à Programação com Processing
30 / 45




Ciclos ou Iterações (e Nested Iterations)
Sintaxe introduzida:
for()




App18, Iterações




        Pedro Amado, 2008-03-18      Notas para a Formação de Introdução à Programação com Processing
31 / 45




Tarde
Prática I – Pong




                             App19, Pong Simples
                             App20, Pong



   Pedro Amado, 2008-03-18                   Notas para a Formação de Introdução à Programação com Processing
32 / 45




Sintaxe UI
Sintaxe introduzida:
mouseX, mouseY, pmouseX, pmouseY,
mousePressed, mouseButton, cursor(),
noCursor(), key, keyPressed, keyCode,
switch()*, case*




App21, SintaxeUI




        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
33 / 45




Dia 2

Manhã
Conceitos Gerais de Programação




   Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
34 / 45




Matemática
Sintaxe introduzida:
constrain(), dist(),random()

Sintaxe extra:
abs(), sqrt(), pow(), norm(), lerp(), map()




App22, Matemática



       Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
35 / 45




Trigonometria
Sintaxe introduzida:
PI, sin(), cos(), radians()

Sintaxe extra:
atan2(), degrees()




App23, Trigonometria



        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
36 / 45




Transformação
Sintaxe introduzida:
translate(), rotate()

Sintaxe extra:
scale(), pushMatrix(), popMatrix();




App24, Transformações
App24b, Transformações



        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
37 / 45




Acções, Gatilhos e Eventos*
Sintaxe introduzida:
mousePressed, mouseReleased, mouseMoved,
mouseDragged, keyPressed, keyReleased




App25, Acções Gatilhos e Eventos




        Pedro Amado, 2008-03-18    Notas para a Formação de Introdução à Programação com Processing
38 / 45




Dados complexos*
Vectores e Matrizes
Sintaxe introduzida:
Array, [], new, Array.length, expand()

Sintaxe extra:
append(), shorten(),arraycopy()




                                  App26, Vectores
                                  App26b, Vectores




        Pedro Amado, 2008-03-18                      Notas para a Formação de Introdução à Programação com Processing
39 / 45




Funções e Métodos (Parâmetros)
Sintaxe introduzida:
void, return

Conceitos Introduzidos: Bloco de Código, Parâmetros e
Retorno

App27, Funções e Parâmetros



Classes e Objectos
              Sintaxe introduzida:
              class, Object, . //String.length


                        App28, Classes e Objectos




        Pedro Amado, 2008-03-18                     Notas para a Formação de Introdução à Programação com Processing
40 / 45




Texto e Tipografia
Sintaxe introduzida:
PFont, loadFont(), textFont(), text(),
textSize(), textLeading(), textAlign(),
textWidth()




App29, Texto




        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
41 / 45




Imagens e Pixels
Sintaxe introduzida:
PImage, loadImage(), image(), tint(),
noTint(), get(), set(), save(), saveImage()




App30, Imagens




       Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
42 / 45




Exercício
Cálculo de média de Idades




App31, Média Consola
App32, Média Primitivas
App33, Média Gráfico




        Pedro Amado, 2008-03-18   Notas para a Formação de Introdução à Programação com Processing
43 / 45




Pong I – Pontuação e/ou imagens
Bibliotecas: Quicktime, controlP5, OpenGL*



Pratica II – Field of Flowers I
Bibliotecas: PDF, OpenGL




     Pedro Amado, 2008-03-18         Notas para a Formação de Introdução à Programação com Processing
44 / 45




Tarde

Pratica III – Field of Flowers II
Interactivo – Bibliotecas: Oscilator, jTablet

                          – Pong II – Wii Connect
                          Interactivo – Bibliotecas: WiiMote

                          – Pong III – Computer Vision
                          Interactivo – jMyron




      Pedro Amado, 2008-03-18                    Notas para a Formação de Introdução à Programação com Processing
45 / 45




Bibliografia e Referências
             Processing: A Programming Handbook
             for Visual Designers and Artists
             Casey Reas and Ben Fry (Foreword by John Maeda).
             Published 24 August 2007, MIT Press. 736 pages.
             Hardcover.

CARDOSO, Jorge – Sebenta de Programação Multimédia [Em
linha]. UCP: Porto, 2006. 16 Fev 2006 Disponível na WWW: URL:
http://teaching.jotgecardoso.org/pm.

MENDES, António José; MARCELINO, Maria José – Fundamentos
de Programação em Java 2. FCA: Lisboa, [s.d.]. ISBN 972-722-423-7

Manual original da Formação + Links

     Pedro Amado, 2008-03-18          Notas para a Formação de Introdução à Programação com Processing

Mais conteúdo relacionado

Mais procurados

A Escultura Renascentista
A Escultura RenascentistaA Escultura Renascentista
A Escultura RenascentistaSusana Simões
 
Resumo mod9 uniao europeia_espaco_econ_asiapacifico
Resumo mod9 uniao europeia_espaco_econ_asiapacificoResumo mod9 uniao europeia_espaco_econ_asiapacifico
Resumo mod9 uniao europeia_espaco_econ_asiapacificoAna Cristina F
 
Guião para reportagem
Guião para reportagemGuião para reportagem
Guião para reportagemClaudia_San
 
1ºficha 10º prof. medição em química
1ºficha 10º prof.  medição em química1ºficha 10º prof.  medição em química
1ºficha 10º prof. medição em químicaSandra Antunes
 
Construção da União Europeia 12º ano
Construção da União Europeia 12º anoConstrução da União Europeia 12º ano
Construção da União Europeia 12º anoDaniela Azevedo
 
As Vanguardas: Ruturas com os Cânones das Artes
As Vanguardas: Ruturas com os Cânones das ArtesAs Vanguardas: Ruturas com os Cânones das Artes
As Vanguardas: Ruturas com os Cânones das ArtesJorge Fernandes
 
12º ano lh1 2ºt 2º p
12º ano lh1 2ºt 2º p12º ano lh1 2ºt 2º p
12º ano lh1 2ºt 2º pAna Cristina F
 
Historia 10 Classe 1o Tr 2023.doc
Historia 10 Classe 1o Tr 2023.docHistoria 10 Classe 1o Tr 2023.doc
Historia 10 Classe 1o Tr 2023.docBilalimario
 
Teoria do desenvolvimento crise e inovação schumpeter
Teoria do desenvolvimento crise e inovação schumpeterTeoria do desenvolvimento crise e inovação schumpeter
Teoria do desenvolvimento crise e inovação schumpeterJoão Cláudio Arroyo
 

Mais procurados (20)

A Escultura Renascentista
A Escultura RenascentistaA Escultura Renascentista
A Escultura Renascentista
 
Vetores
VetoresVetores
Vetores
 
Resumo mod9 uniao europeia_espaco_econ_asiapacifico
Resumo mod9 uniao europeia_espaco_econ_asiapacificoResumo mod9 uniao europeia_espaco_econ_asiapacifico
Resumo mod9 uniao europeia_espaco_econ_asiapacifico
 
Guião para reportagem
Guião para reportagemGuião para reportagem
Guião para reportagem
 
1ºficha 10º prof. medição em química
1ºficha 10º prof.  medição em química1ºficha 10º prof.  medição em química
1ºficha 10º prof. medição em química
 
Vetor velocidade
Vetor velocidadeVetor velocidade
Vetor velocidade
 
Forças
ForçasForças
Forças
 
Cinemática Vetorial
Cinemática VetorialCinemática Vetorial
Cinemática Vetorial
 
Construção da União Europeia 12º ano
Construção da União Europeia 12º anoConstrução da União Europeia 12º ano
Construção da União Europeia 12º ano
 
Leis de kepler
Leis de keplerLeis de kepler
Leis de kepler
 
Leis de newton
Leis de newtonLeis de newton
Leis de newton
 
Calorimetria
CalorimetriaCalorimetria
Calorimetria
 
Mercados de concorrência perfeita
Mercados de concorrência perfeitaMercados de concorrência perfeita
Mercados de concorrência perfeita
 
Luz
LuzLuz
Luz
 
Futurismo
FuturismoFuturismo
Futurismo
 
As Vanguardas: Ruturas com os Cânones das Artes
As Vanguardas: Ruturas com os Cânones das ArtesAs Vanguardas: Ruturas com os Cânones das Artes
As Vanguardas: Ruturas com os Cânones das Artes
 
Trabalho e Energia - Física.
Trabalho e Energia - Física.Trabalho e Energia - Física.
Trabalho e Energia - Física.
 
12º ano lh1 2ºt 2º p
12º ano lh1 2ºt 2º p12º ano lh1 2ºt 2º p
12º ano lh1 2ºt 2º p
 
Historia 10 Classe 1o Tr 2023.doc
Historia 10 Classe 1o Tr 2023.docHistoria 10 Classe 1o Tr 2023.doc
Historia 10 Classe 1o Tr 2023.doc
 
Teoria do desenvolvimento crise e inovação schumpeter
Teoria do desenvolvimento crise e inovação schumpeterTeoria do desenvolvimento crise e inovação schumpeter
Teoria do desenvolvimento crise e inovação schumpeter
 

Semelhante a Introdução à Programação Gráfica com Processing

Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Vitor Faria
 
Especificação Gráfica e Técnica
Especificação Gráfica e TécnicaEspecificação Gráfica e Técnica
Especificação Gráfica e TécnicaMiguel La-Salette
 
Aula 1 módulo i - psi
Aula 1   módulo i - psiAula 1   módulo i - psi
Aula 1 módulo i - psi111111119
 
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptxprofdourivaljunior
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisCaio Ribeiro Pereira
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfLuanaBatista74
 
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_internationalGeneXus
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Algoritomos aula 3 rafael
Algoritomos aula 3 rafaelAlgoritomos aula 3 rafael
Algoritomos aula 3 rafaelhugodrocha
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSThiago Rodrigues
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Ementa curso promodel_basico
Ementa curso promodel_basicoEmenta curso promodel_basico
Ementa curso promodel_basicoRafael Soares
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 ModelDouglas Alonso
 
Ferramentas de design_aula02_2010.05.17
Ferramentas de design_aula02_2010.05.17Ferramentas de design_aula02_2010.05.17
Ferramentas de design_aula02_2010.05.17Marco Aurelio Veiga
 

Semelhante a Introdução à Programação Gráfica com Processing (20)

Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51
 
Especificação Gráfica e Técnica
Especificação Gráfica e TécnicaEspecificação Gráfica e Técnica
Especificação Gráfica e Técnica
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Aula 1 módulo i - psi
Aula 1   módulo i - psiAula 1   módulo i - psi
Aula 1 módulo i - psi
 
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx
[LP-A01] Slide - ui Conceitos e Princípios de programação.pptx
 
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas OperacionaisSimulaRSO - Simulador de Recursos de Sistemas Operacionais
SimulaRSO - Simulador de Recursos de Sistemas Operacionais
 
Autocad pitágoras 2 d
Autocad   pitágoras 2 dAutocad   pitágoras 2 d
Autocad pitágoras 2 d
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
 
134
134134
134
 
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international
0117 modelado de_procesos_según_el_bpm_cbok_de_abpmp_international
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritomos aula 3 rafael
Algoritomos aula 3 rafaelAlgoritomos aula 3 rafael
Algoritomos aula 3 rafael
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Ementa curso promodel_basico
Ementa curso promodel_basicoEmenta curso promodel_basico
Ementa curso promodel_basico
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
Workshop.pptx
Workshop.pptxWorkshop.pptx
Workshop.pptx
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 
Ferramentas de design_aula02_2010.05.17
Ferramentas de design_aula02_2010.05.17Ferramentas de design_aula02_2010.05.17
Ferramentas de design_aula02_2010.05.17
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Introdução à Programação Gráfica com Processing

  • 1. Introdução à Programação Gráfica com Processing Notas para a Formação @ Audiência Zero Pedro Amado Porto, 2008-03-22 Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso Não-Comercial- Partilha nos termos da mesma Licença 2.5 Portugal. Para ver uma cópia desta licença, visite http:// creativecommons.org/licenses/by-nc-sa/2.5/pt/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
  • 2. 2 / 45 Qualquer correcão ou sugestão: pedamado@gmail.com Para mais informações e slides da sessão: http://pedamado.googlepages.com http://pedamado.wordpress.com/2008/03/22/processing- audiencia-zero/ Manual da formação original disponível aqui: http://www.box.net/shared/n3ew1kqskc Ficheiros e Exemplos: http://www.box.net/shared/f0rhr90ws8 Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 3. 3 / 45 Resumo As presentes notas servem de apoio às sessões (2) de formação em Introdução à programação Gráfica com Processing na Audiência Zero. Esta não é uma sessão de aprendizagem em programação! A formação consiste: • Elementos fundamentais de programação, • Exposição de exemplos de artistas conceituados • Desafios para criar aplicações interactivas com um grau sucessivo de independência • Uma aplicação gráfica interactiva Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 4. 4 / 45 Dia 1 Apresentação Pedro Amado Mestre em Arte Multimédia (2007) Licenciatura em Design de Comunicação (2002). Assistente Convidado no Departamento de Arte e Comunicação (DeCA) da Universidade de Aveiro (UA) onde lecciona Multimédia. Técnico Superior de Design na Faculdade de Belas Artes da Universidade do Porto (FBAUP 2003-2007) Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 5. 5 / 45 Introdução Público-Alvo Alunos de Design de Comunicação (Designers); Alunos de Artes Plásticas (Artistas); Pessoas interessadas em Multimédia Digital (Toda a gente). Requisitos? Curiosidade! Porquê programar? Um programa é um jogo de algoritmos construídos para resolver ou simplificar um problema. Because an artist is expected to understand his/her medium. Because this is true digital design. Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 6. 6 / 45 Porquê o Processing? 1. Open Source 2. Versão Beta (ainda) o que o torna ideal 3. Multi-plataforma. MacOS, Win, Unix. 4. Poder do JAVA a. Simples* b. Adequa-se ao processo de ensino* c. Faz uma boa transição entre linguagens de baixo nível e scripting de muito alto nível; d. Documentação extensa. Há diversos websites dedicados à programação, especialmente em JAVA e muitos dedicados ao Processing – ver a secção de links; e. (muito) Extensível 5. Exporta Executáveis e Applets para a Web 6. Comunidade Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 7. 7 / 45 Como obter e usar: Download & Install Site: http://www.processing.org/ Download: http://www.processing.org/download/index.html Documentação: http://www.processing.org/reference/index.html Aprendizagem: http://www.processing.org/learning/index.html Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 8. 8 / 45 IDE(PDE) App01, Hello World! Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 9. 9 / 45 Do Algoritmo à arte (conceptual) e vice-versa. O desenho como um processo racional Concept art is a form of illustration where the main goal is to convey a visual representation of a design, idea, and/or mood for use in movies, video games, or comic books before it is put into the final product. The idea becomes a machine that makes the art. – Sol LeWitt, “Paragraphs on Conceptual Art”, Art Forum, 1967. Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 10. 10 / 45 Exemplos Ben Fry Anemone, 2005 Valence, 1999 Casey Reas Ti, 2004 Process 4, 2005 Articulate, 2004 Martin Wattenberg Thinking Machines 4, 2001-04 Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 11. 11 / 45 Alternativas ao Processing Flash http://www.adobe.com/ NodeBox http://nodebox.net/code/index.php/Home Scriptographer http://www.scriptographer.com/ Max/MSP http://www.cycling74.com/products/maxmsp PureData http://puredata.info/ Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 12. 12 / 45 SmallTalk / Squeak http://www.squeak.org/ Flex http://flex.org/ | http://labs.adobe.com/technologies/flex/ MS Silverlight http://silverlight.net/ JAVA http://java.sun.com/ OpenFrameworks http://openframeworks.cc/ ( C++ http://www.cplusplus.com/ ) Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 13. 13 / 45 Conceitos Gerais de Programação Algoritmia Um algoritmo pode ser descrito usando várias linguagens ou línguas: – Português; – Pseudo-código, é uma linguagem entre a linguagem natural e uma linguagem de programação; – Fluxogramas, descrição gráfica de um algoritmo; – Linguagem de Programação Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 14. 14 / 45 Lógica e Sintaxe Um programa pode ser analisado segundo duas perspectivas: –Sintaxe: o código está de acordo com as regras gramaticais da linguagem de programação utilizada? –Lógica: o código executa aquilo que nós pretendemos? Um programa pode estar sintacticamente correcto (regra geral o compilador detecta estes erros), mas logicamente estar errado. Nível de detalhe... Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 15. 15 / 45 Comentários e Documentação Sintaxe introduzida: //, /* */ App02, Comentários Expressões, instruções e terminadores Sintaxe introduzida: ; Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 16. 16 / 45 Sensibilidade à caixa (Mm) O Processing é sensível ao uso de maiúsculas e de minuúsculas. Escrever “minúsculas” NÂO é a mesma coisa que escrever “MINUSCULAS”. Espaço em branco O Processing é insensível ao espaço em branco entre funções, expressões e/ou literais. Funções e callbacks Sintaxe introduzida: () {} Conceitos introduzidos: Função, Parâmetros, Índice de acesso, Bloco de código Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 17. 17 / 45 Consola e mensagens Sintaxe introduzida: print(), println(); Conceitos introduzidos: Consola, Debug, Função, Mensagem App04, Print Dados/Literais (Inserir diagrama dos elementos do código) Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 18. 18 / 45 Coordenadas Sintaxe introduzida: size(); Processing uses a Cartesian coordinate system with the origin in the upper- left corner. If your program is 320 pixels wide and 240 pixels high, coordinate [0, 0] is the upper-left pixel and coordinate [320, 240] is in the lower-right. The last visible pixel in the lower-right corner of the screen is at position [319, 239] because pixels are drawn to the right and below the coordinate. Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 19. 19 / 45 Primitivas Sintaxe introduzida: point(), line(), rect(), ellipse(), bezier() App05, Primitivas Sintaxe Extra: quad(),curve(), rectMode(), ellipseMode(), curveVertex(), bezierVertex(); App06, Bezier Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 20. 20 / 45 Cor Sintaxe introduzida: background(), fill(), stroke(), noFill(), noStroke() Sintaxe Extra: color() Conceitos: RGB+A (Alpha) App07, Cor Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 21. 21 / 45 Atributos/Modos de Desenho Sintaxe introduzida: smooth(), strokeWeight(), strokeCap(), Sintaxe Extra: ellipseMode(), rectMode() App08, Atributos Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 22. 22 / 45 Variáveis e Tipos de Dados Todos os dados armazenados em memoria e ou manipulados pelo computador tem uma natureza específica. Os valores/variáveis utilizadas nas operações têm de ser compatíveis – Têm de ser do mesmo tipo Simples Tipos simples são tipos cujos valores são atómicos, i.e., não podem ser decompostos Numérico - Inteiro - Real Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 23. 23 / 45 Alfanumérico (cadeia de caracteres ou string) “1” (string) é diferente de 1 (número) Lógico (verdadeiro ou falso - boolean) Compostos(Complexos)* Tipos complexos são tipos compostos por vários elementos simples: Vector (Array em inglês – não confundir com a palavra inglesa vector): uma lista de elementos do mesmo tipo que podem ser acedidos via um índice. Matriz: vector multi-dimensional; Estrutura (Struct): agregação de vários tipos de dados; Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 24. 24 / 45 Tipos de variáveis Sintaxe introduzida: int, float, boolean, char, String* App09, Variaveis Declarar e inicializar (Strict Typing) Sintaxe introduzida: = //atribuir Visibilidade (Scope)* Conceitos introduzidos: Global e Local Variáveis do Processing* Sintaxe introduzida: width, height Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 25. 25 / 45 Conversão de dados* Sintaxe introduzida: boolean(), byte(), char(), int(), float(), str() (Inserir App aqui?) Operadores Aritméticos Sintaxe introduzida: +, -, *, /, % App10, Operadores Aritméticos Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 26. 26 / 45 Precedência Sintaxe introduzida: () Abreviações* ++,--,+=, -=, *=, /=, - App11, Abreviações Restrições* Sintaxe introduzida: ceil(), floor(), round(), min(), max() App12, Restrições Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 27. 27 / 45 Operadores Relacionais Sintaxe introduzida: >, <, >=, <=, ==, != App13, Operadores Relacionais Operadores Condicionais* If, else, {} App14, Operadores Condicionais Operadores Lógicos Sintaxe introduzida: ||, &&, ! App15, Operadores Lógicos Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 28. 28 / 45 Estrutura de um programa Modo Simples (Básico) This mode is used drawing static images and learning fundamentals of programming. Simple lines of code have a direct representation on the screen. Modo Contínuo Sintaxe introduzida: setup(), draw(), frameRate(), frameCount(), loop(), noLoop(), redraw() Conceitos introduzidos: Bloco de Código, Callbacks, Funções, Visibilidade das variáveis Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 29. 29 / 45 This mode provides a setup() structure that is run once when the program begins and a draw() structure which by default continually loops through the code inside. This additional structure allows writing custom functions and classes and using keyboard and mouse events. App16, Modo Contínuo Condições (e blocos de código) Sintaxe introduzida: if(), else(), {}, switch()*, case* App17, Condições Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 30. 30 / 45 Ciclos ou Iterações (e Nested Iterations) Sintaxe introduzida: for() App18, Iterações Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 31. 31 / 45 Tarde Prática I – Pong App19, Pong Simples App20, Pong Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 32. 32 / 45 Sintaxe UI Sintaxe introduzida: mouseX, mouseY, pmouseX, pmouseY, mousePressed, mouseButton, cursor(), noCursor(), key, keyPressed, keyCode, switch()*, case* App21, SintaxeUI Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 33. 33 / 45 Dia 2 Manhã Conceitos Gerais de Programação Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 34. 34 / 45 Matemática Sintaxe introduzida: constrain(), dist(),random() Sintaxe extra: abs(), sqrt(), pow(), norm(), lerp(), map() App22, Matemática Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 35. 35 / 45 Trigonometria Sintaxe introduzida: PI, sin(), cos(), radians() Sintaxe extra: atan2(), degrees() App23, Trigonometria Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 36. 36 / 45 Transformação Sintaxe introduzida: translate(), rotate() Sintaxe extra: scale(), pushMatrix(), popMatrix(); App24, Transformações App24b, Transformações Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 37. 37 / 45 Acções, Gatilhos e Eventos* Sintaxe introduzida: mousePressed, mouseReleased, mouseMoved, mouseDragged, keyPressed, keyReleased App25, Acções Gatilhos e Eventos Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 38. 38 / 45 Dados complexos* Vectores e Matrizes Sintaxe introduzida: Array, [], new, Array.length, expand() Sintaxe extra: append(), shorten(),arraycopy() App26, Vectores App26b, Vectores Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 39. 39 / 45 Funções e Métodos (Parâmetros) Sintaxe introduzida: void, return Conceitos Introduzidos: Bloco de Código, Parâmetros e Retorno App27, Funções e Parâmetros Classes e Objectos Sintaxe introduzida: class, Object, . //String.length App28, Classes e Objectos Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 40. 40 / 45 Texto e Tipografia Sintaxe introduzida: PFont, loadFont(), textFont(), text(), textSize(), textLeading(), textAlign(), textWidth() App29, Texto Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 41. 41 / 45 Imagens e Pixels Sintaxe introduzida: PImage, loadImage(), image(), tint(), noTint(), get(), set(), save(), saveImage() App30, Imagens Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 42. 42 / 45 Exercício Cálculo de média de Idades App31, Média Consola App32, Média Primitivas App33, Média Gráfico Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 43. 43 / 45 Pong I – Pontuação e/ou imagens Bibliotecas: Quicktime, controlP5, OpenGL* Pratica II – Field of Flowers I Bibliotecas: PDF, OpenGL Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 44. 44 / 45 Tarde Pratica III – Field of Flowers II Interactivo – Bibliotecas: Oscilator, jTablet – Pong II – Wii Connect Interactivo – Bibliotecas: WiiMote – Pong III – Computer Vision Interactivo – jMyron Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing
  • 45. 45 / 45 Bibliografia e Referências Processing: A Programming Handbook for Visual Designers and Artists Casey Reas and Ben Fry (Foreword by John Maeda). Published 24 August 2007, MIT Press. 736 pages. Hardcover. CARDOSO, Jorge – Sebenta de Programação Multimédia [Em linha]. UCP: Porto, 2006. 16 Fev 2006 Disponível na WWW: URL: http://teaching.jotgecardoso.org/pm. MENDES, António José; MARCELINO, Maria José – Fundamentos de Programação em Java 2. FCA: Lisboa, [s.d.]. ISBN 972-722-423-7 Manual original da Formação + Links Pedro Amado, 2008-03-18 Notas para a Formação de Introdução à Programação com Processing