programar con processing en...

Post on 02-Aug-2018

259 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programar con Processing en Python

J.B. Hayet

CENTRO DE INVESTIGACION EN MATEMATICAS

Julio 2015

,J.B. Hayet Processing-Python Mode, Julio 2015 1 / 20

El “lenguaje” Processing

Processing:

Un dialecto de Java, muy simplificado.

Una IDE sencilla e intuitiva.

A priori ninguna dificultad para programadores en C, C++.

La meta es tocar a un publico que no sabe de lenguajes engeneral, enfocado a graficos interactivos, sonido, vıdeo,animacion. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 2 / 20

El “lenguaje” Processing

Aplicaciones particularmente bien adaptadas:

ensenanza: rudimentos programacion hasta POO,

ensenanza: ilustracion animada de conceptos,

prototipaje rapido de aplicaciones, “sketches”

visualizacion de datos.

,J.B. Hayet Processing-Python Mode, Julio 2015 3 / 20

Una IDE reducida a lo esencial

,J.B. Hayet Processing-Python Mode, Julio 2015 4 / 20

Una IDE reducida a lo esencial

Una ventana de texto, para escribir el codigo.

Una consola.

Una ventana grafica, con el output del programa.

Interfaz de la IDE simplista:

En unos minutos, se entiende como funciona todo.

,J.B. Hayet Processing-Python Mode, Julio 2015 5 / 20

Sketches

El concepto de Sketch es el de “proyecto” de las IDEsnormales, es decir el un programa con una o varias unidades decompilacion.

A un Sketch corresponde a un directorio en un directorio deSketches.

Los archivos de los Sketches tienen extension .pde (Java) o.pyde (Python).

Los diferentes archivos aparecen como pestanas en la ventanadel codigo.

,J.B. Hayet Processing-Python Mode, Julio 2015 6 / 20

Librerıas disponibles

Integrados

Importacion de datos XML, SVG

Exportacion PDF, DXF, etc.

Video

Redes

Comunicacion serial

External Contributions

Sonido: Ess, Sonia

Computer Vision: JMyron, ReacTIVision,BlobDetection

Interface: proCONTROLL, Interfascia

. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 7 / 20

Varios modos de programacion

Tres maneras de programar en Python (con el Python Mode)

Modo basico (dibujos estaticos, codigo secuencial).

Modo continuo (animacion, funciones).

Modo objeto (clases Python).

Se puede adaptar a la audiencia. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 8 / 20

Varios modos de programacion

Modo basico, programacion imperativa

s i z e (512 ,512)background (255)noSt roke ( )f o r i i n range ( 1 0 0 ) :

f i l l ( random (255) , random (255) , random (255 ) )x = random (512)y = random (512)r e c t ( x , y , 5 0 , 50 )

Ciclos, llamadas a funciones, variables. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 9 / 20

Varios modos de programacion

Modo continuo, programacion procedural

de f s e tup ( ) :s i z e (729 ,729)background (255)noSt roke ( )f rameRate (1 )

de f draw ( ) :drawCross (0 , 0 , 729 )

,J.B. Hayet Processing-Python Mode, Julio 2015 10 / 20

Varios modos de programacion

Modo continuo, programacion procedural

de f drawCross ( x , y ,w ) :i f w<1:

returnf i l l ( random (255) , random (255) , random (255 ) )r e c t ( x+w/3 , y+w/3 ,w/3 ,w/3)r e c t ( x , y+w/3 ,w/3 ,w/3)r e c t ( x+2∗w/3 , y+w/3 ,w/3 ,w/3)r e c t ( x+w/3 , y ,w/3 ,w/3)r e c t ( x+w/3 , y+2∗w/3 ,w/3 ,w/3)drawCross ( x , y ,w/3)drawCross ( x+2∗w/3 , y ,w/3)drawCross ( x , y+2∗w/3 ,w/3)drawCross ( x+2∗w/3 , y+2∗w/3 ,w/3)

Funciones, recursiones. . .,

J.B. Hayet Processing-Python Mode, Julio 2015 11 / 20

Varios modos de programacion

Modo continuo, programacion proceduralDos funciones invocadas por default:

setup() : al crear la ventana,

draw() : funcion de dibujo llamada en cada ciclo (frecuenciaadaptable. . . )

Simulacion dinamica. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 12 / 20

Varios modos de programacion

Modo continuo, programacion procedural+ Handlers para eventos de raton, teclados. . .

mousePressed()

mouseReleased()

mouseMoved()

keyPressed()

...

Variables globales mouseX, mouseY, pmouseX, pmouseY. . .

,J.B. Hayet Processing-Python Mode, Julio 2015 13 / 20

Varios modos de programacion

Modo objeto: programacion orientada a objetos, clases. . .

Usar la applet de Processing en otro programa. . .

Usaremos clases en los talleres de robotica.

,J.B. Hayet Processing-Python Mode, Julio 2015 14 / 20

Varios modos de programacion

Implicit data types (int, float, boolean)

Arrays

Loops

Conditionals and Logical Operators

Strings

Variables and Scoping

,J.B. Hayet Processing-Python Mode, Julio 2015 15 / 20

Graficos

Es lo mas interesante del lenguaje:

se encarga de toda la parte generalmente tecnicamente delicadade inicializacion integrando varias modalidades graficas pordefault (2D, 3D, OpenGL. . . ),

muy facil de crear animaciones, visualizaciones dinamicas aunpara debutante,

graficos, sonidos, animacion son al centro del concepto.

,J.B. Hayet Processing-Python Mode, Julio 2015 16 / 20

Graficos

,J.B. Hayet Processing-Python Mode, Julio 2015 17 / 20

Graficos

Modo 2D

de f s e tup ( ) :s i z e (320 , 240)background (153)

de f draw ( ) :l i n e (0 , 0 , width , h e i g h t )

,J.B. Hayet Processing-Python Mode, Julio 2015 18 / 20

Graficos

Modo P3D

de f s e tup ( ) :s i z e (320 , 240 , P3D)

de f draw ( ) :background (0 )s t r o k e (255 ,0 , 0 )t r a n s l a t e ( width /2 , h e i g h t /2)ro ta t eX ( cos ( frameCount ∗ PI / 300))l i n e (0 , 0 , 0 , width , he i gh t , −200)l i n e (0 , 0 , 0,−width , he i gh t , −200)l i n e ( width , he i gh t , −200,−width , he i gh t , −200)

,J.B. Hayet Processing-Python Mode, Julio 2015 19 / 20

Features adicionales

Soporte para imagenes.Soporte para manejo de vıdeo.Unos esfuerzos para portar el OpenCV a Processinghttps://github.com/atduskgreg/opencv-processing

,J.B. Hayet Processing-Python Mode, Julio 2015 20 / 20

top related