Manual de Processing
Manual de Processing
EXPERIMENTAL.
DOMESTIKA . MANOLO GUERRERO
2
BlueTypo 2016
INTRODUCCIÓN
1. PROCESSING
Barra de herramientas
sketch
Área de mensajes
Consola y Errores
Fig. 1. Interface
6
size(250, 250);
https://www.processing.org/reference/
8
Punto
point( x, y );
point(30, 20);
Linea
Donde x1, y1 corresponden al origen de la línea y x2,y2 a la parte final.
line(x1, y1, x2, y2)
line(30, 20, 0, 85, 20, 15);
Elipse
Donde a,b corresponden al punto de origen y c,d corresponde al ancho y alto.
ellipse(a, b, c, d)
ellipse(56, 46, 55, 55);
Rectángulo
Donde a,b corresponden al origen y c,d al ancho y alto, r corresponde a radio y es
opcional su uso.
rect(a, b, c, d)
rect(a, b, c, d, r)
Triángulo
Donde x1, y1 corresponden al primer vértice, x2, y2 al segundo y x3, y3 al tercero.
triangle(x1, y1, x2, y2, x3, y3)
triangle(30, 75, 58, 20, 86, 75);
beginShape();
vertex(30, 20);
vertex(85, 20);
vertex(85, 75);
vertex(30, 75);
endShape(CLOSE);
Opciones de contorno.
strokeWeight(4); // Grosor de linea de 4 píxels.
strokeJoin(opción); las opciones son MITER angular,
BEVEL recortado y ROUND redondeado.
Opciones de color.
El color se puede utilizar en valores de R, G, B o en valo-
res hexadecimales, el valor 255 es el máximo, por lo tanto
255,255,255 corresponde a blanco y el valor 0 a negro. Exis-
te un cuarto valor, este corresponde al nivel de transparencia
que va de 0 a 255, siendo 0 la máxima transparencia.
EJERCICIO
En este primer ejercicio dibujaremos dos figuras básicas, los
archivos correspondientes a este ejercicio los encuentras en
los recursos de la unidad 3.
ciculo 1
(250,250,260,260)
void setup() {
size(600,600); // tamaño de la ventana
background(255); // fondo blanco
}
void draw() {
noStroke(); // sin contorno
fill(#ff5050); // color primera elipse
ellipse(250,250,260,260); // elipse 1
fill(#3e54c1,120); // color segunda elipse + alpha
ellipse(350,350,260,260); // elipse 2
}
12
1.2. VARIABLES
Una variable es un valor que se almacena en la memoria del
ordenador y a lo largo del programa se puede ir actualizando
su valor.
int a=23;
float a=15.50;
boolean a=true;
String p=”potato”;
1.3. CONDICIONALES
Sirven al programador para establecer el flujo del programa,
permiten tomar decisiones y realizar una acción. Su sintaxis
es la siguiente:
if (condición) {
realiza algo();
}
if (condición) {
realiza algo();
} else {
realiza otra cosa();
}
1.4. OPERADORES
Permiten comparar valores numéricos contenidos por varia-
bles y en base a ello realizar acciones predeterminadas.
== (igualdad) > (mayor a) >= (mayor o igual a)
if (a == b){ if (a > b) { if (a >= b) {
realiza algo(); realiza algo(); realiza algo();
} } }
1.5 CICLOS
Los ciclos son estructuras de repetición nos permiten ejecu-
tar varias veces algo, permiten realizar acciones repetitivas de
una mancera sencilla y rápida. Para realizar ciclos se pueden
utilizar las instrucciones While y for.
while (condición) {
realiza algo();
}
random(valor);
random(valor1, valor2);
// inicia la variable i
int i=0;
void draw() {
if (i<10) {
float ranx = random(-250,250)+300;
float rany = random(-250,250)+300;
fill(#3e54c1);
noStroke();
ellipse(ranx,rany,50,50);
stroke(#3e54c1);
strokeWeight(4);
line(300,300,ranx,rany);
i++;
}
}
Con esto ya estarás listo para dibujar el siguiente ejercicio:
ciculo 2
(400,200,260,260)
ciculo 1
(250,250,260,260)
ciculo 3
(350,350,260,260)
LIBRERÍAS
http://www.ricardmarxer.com/geomerative/
1. Importar la librería.
Esto se realiza en las primeras líneas de código con la siguien-
te instrucción:
import geomerative.*;
3. Iniciar la librería.
Para iniciar la librería y declarar las propiedades del objeto,
es necesario realizarlo en la función setup() con la siguiente
instrucción:
RG.init(this);
grp = RG.getText("Hi", "FreeSans.ttf", 72, CENTER);
4. Dibuja el objeto.
Para dibujar el objeto, en la función draw() hay que utilizar la
siguiente instrucción:
grp.draw();
import geomerative.*;
RShape grp;
void setup(){
size(600,400);
RG.init(this);
background(255);
fill(255, 102, 0);
stroke(0);
grp = RG.getText("Hi", "FreeSans.ttf", 72, CENTER);
}
void draw(){
background(255);
translate(width/2, height/2);
grp.draw();
}
20
void draw() {
if (record) {
beginRecord(PDF, "pdf/typo-####.pdf");
}
background(#3e5497); // color de fondo
translate (76, 450); // posición del texto
if (record) {
endRecord();
record = false;
}
void keyPressed() {
if (key=='e') {
record = true;
}
import geomerative.*;
import processing.pdf.*;
boolean record;
RFont font;
String SampleText = "A B C";
RPoint[] pnts;
void setup() {
size (1400, 600);
RG.init(this);
font = new RFont("FreeSans.ttf", 80, RFont. LEFT) ;
RCommand.setSegmentLength(16);
RCommand.setSegmentator(RCommand.UNIFORMLENGTH);
void draw() {
if (record) {
beginRecord(PDF, "pdf/typo-####.pdf");
}
background(#3e5497); // color de fondo
translate (76, 450); // posición del texto
for (int i=0; i<pnts.length; i++) {
pushMatrix();
translate(pnts[i].x, pnts[i].y);
dibuja1();
popMatrix();
}
if (record) {
endRecord();
record = false;
}
//saveFrame("img/typo-######.tif");
}
24
void keyPressed() {
if (key=='e') {
record = true;
}
}
dibuja1();
dibuja2();
dibuja3();
26
RECURSOS ADICIONALES
Processing:
Sitio oficial: https://processing.org/
Welcome to processing: http://hello.processing.org/
Referencia: https://processing.org/reference/
Librerías: https://processing.org/reference/libraries/
Tutoriales.
Anatomía, J David Eisenberg.
https://processing.org/tutorials/anatomy
Fun programming.
http://funprogramming.org/
Introduction to coding.
https://www.youtube.com/playlist?list=PLG8vJUg0ALmssb3E-Yekn-
314MyeVCX2-7
Tutoriales de processing
https://processing.org/tutorials/