Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
highlevel:processing [2010/04/02 16:28] alfred |
highlevel:processing [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 147: | Línea 147: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| Línea 174: | Línea 180: | ||
| </code> | </code> | ||
| === Archivos === | === Archivos === | ||
| - | Los archivos han de estar en la carpeta ''data''. \\ | + | Los archivos a leer han de estar en la carpeta ''data''. Existen dos funciones para recopilar información de archivos: Con ''loadStrings()'' cargamos un archivo de texto en un array de strings (también podríamos hacer lo contrario, guardar un array de strings como archivo de texto, con ''saveStrings''). Con ''loadBytes()'' cargamos datos binarios. |
| - | Con ''loadStrings()'' cargamos un archivo de texto en un array de strings. Lo contrario, guardar un array de strings como archivo de texto, lo haremos con ''saveStrings''. \\ | + | |
| - | Con ''loadBytes()'' cargamos datos binarios. | + | |
| <code java> | <code java> | ||
| void setup () { | void setup () { | ||
| Línea 186: | Línea 190: | ||
| } | } | ||
| </code> | </code> | ||
| + | La función ''loadStrings()'' acepta una url, esta puede ser de un archivo online. | ||
| + | <code java> | ||
| + | loadStrings("http://www.prueba.com/data.php"); | ||
| + | </code> | ||
| + | |||
| + | === Transformaciones === | ||
| + | Como ocurre con [[fw:ogl|OpenGL]] podemos realizar transformaciones geométricas sobre la vista para que lo dibujado se muestre alterado según esta. \\ | ||
| + | Para ello utilizamos las funciones ''pushMatrix'', para iniciar una transformación, y ''popMatrix'' para acabarla. \\ | ||
| + | Las funciones de transformación son: | ||
| + | * ''translate(x,y)'', para realizar una traslación. | ||
| + | * ''rotate(angle)'', para realizar una rotación. ''Angle'' tiene que estar dado como radianes. | ||
| + | * ''scale(fValue)'', para realizar un escalado. | ||
| + | <code java> | ||
| + | int ang = 0; | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | size(200,200); | ||
| + | } | ||
| + | |||
| + | void draw() | ||
| + | { | ||
| + | background(255); | ||
| + | stroke(128); | ||
| + | strokeWeight(3); | ||
| + | pushMatrix(); | ||
| + | translate(100,100); | ||
| + | rotate(radians(ang)); | ||
| + | rect(-40, -40, 80, 80); | ||
| + | popMatrix(); | ||
| + | ang++; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| ==== Otras funciones ==== | ==== Otras funciones ==== | ||
| * ''saveFrame'' para guardar el frame actual como imágen. | * ''saveFrame'' para guardar el frame actual como imágen. | ||
| - | ===== Avanzado ===== | + | * Remarcar también que podemos acceder a las variables ''height'' y ''width'' que nos indicarán el tamaño actual de la ventana. |
| + | === Funciones matemáticas === | ||
| + | * ''sqrt(number)'': Devuelve la raíz cuadrada del número. | ||
| + | * ''pow(number, exponent)'': Eleva el número al exponente dado. | ||
| + | * ''radians(angle)'': Devuelve los radianes de un ángulo expresado en grados. | ||
| + | * ''degrees(radians)'': Devuelve los grados de un ángulo expresado en radianes. | ||
| + | |||
| + | |||
| + | ==== Otras clases ==== | ||
| + | === PVector === | ||
| + | La clase ''PVector'' nos facilita las operaciones con vectores mediante el uso de sus métodos | ||
| + | Métodos: | ||
| + | * ''set()'', asigna los valores para la x, la y y la z del vector. | ||
| + | * ''get()'', recoge los valores de la x, la y y la z. | ||
| + | * ''mag()'', calcula la magnitud (tamaño) del vector. | ||
| + | * ''add()'', suma otro vector al vector. | ||
| + | * ''sub()'', resta un vector al vector. | ||
| + | * ''mult()'', multiplica el vector por un escalar. | ||
| + | * ''div()'', divide el vector por un escalar. | ||
| + | * ''dist()'', calcula la distancia euclidea entre dos puntos. | ||
| + | * ''dot()'', calcula el producto escalar. | ||
| + | * ''cross()'', calcula el producto cruzado. | ||
| + | * ''normalize()'', normaliza un vector. | ||
| + | * ''limit()'', limita la magnitud del vector. | ||
| + | * ''angleBetween()'', calcula el ángulo entre dos vectores. | ||
| + | * ''array()'', retorna la representación del vector como un array. | ||
| + | El siguiente código... | ||
| + | <code java> | ||
| + | float x = 100; | ||
| + | float y = 100; | ||
| + | float xspeed = 1; | ||
| + | float yspeed = 3.3; | ||
| + | x = x + xspeed; | ||
| + | y = y + yspeed; | ||
| + | </code> | ||
| + | Podríamos llegar a escribirlo como... | ||
| + | <code java> | ||
| + | PVector location = new PVector(100, 100); | ||
| + | PVector velocity = new PVector(1, 3.3); | ||
| + | location.add(velocity); | ||
| + | </code> | ||
| + | |||
| + | ===== Avanzado ===== | ||
| ===== Otros ===== | ===== Otros ===== | ||
| + | |||
| ==== Como... ==== | ==== Como... ==== | ||
| + | === Trucos gráficos === | ||
| + | * Para crear **motion blur**, en cada frame en vez de indicar "borrar todo el backgraund" lo que haríamos es dibujar un cuadrado blanco pero con alpha: | ||
| + | <code java> | ||
| + | void draw() { | ||
| + | // backgraund(255); | ||
| + | noStroke(); | ||
| + | fill(255,10); | ||
| + | rect(0,0,width,height); | ||
| + | // Rutina de dibujo | ||
| + | </code> | ||
| ==== Ejemplos ==== | ==== Ejemplos ==== | ||