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 18:52] alfred |
highlevel:processing [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 147: | Línea 147: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| Línea 189: | Línea 194: | ||
| loadStrings("http://www.prueba.com/data.php"); | loadStrings("http://www.prueba.com/data.php"); | ||
| </code> | </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> | ||
| + | |||
| Línea 194: | Línea 229: | ||
| * ''saveFrame'' para guardar el frame actual como imágen. | * ''saveFrame'' para guardar el frame actual como imágen. | ||
| * Remarcar también que podemos acceder a las variables ''height'' y ''width'' que nos indicarán el tamaño actual de la ventana. | * 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 ===== | ===== Avanzado ===== | ||
| - | ==== Transformaciones 2d ==== | + | |
| ===== 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 ==== | ||