| Interfaz PJS de KA | Plataforma PJS para programar | Nuevo manual oficial con ejemplos
Ejemplos nuevos processing
http://dunadigital.com/processing/2013/07/13/hello-world/
Tres Formas de subir Escenas creadas en PJS a tu web
1-Podemos crear un PDE con el compilador Processing (que se descarga en www.processing.org ) e incrustarlo en una página web (Linkeado como .PDE)
2-Podemos crearlo en Sketckpad (entrando a http://processingtogether.com/) e incrustarlo en nuestra web como Link o como Iframe (Marco flotante).
3-Podemos escribir directamente un código PSJ en archivo de texto subirlo a nuestro servidor y enlazarlo a nuestra página web como si fuera un Javascript un código Flash o un Applet Java.
¿Qué es Processing Javascript (PJS)?
Es un lenguaje de preprocesamiento de Javascript sus archivos se escriben con código PJS.
Es un lenguaje de programación para la Web Permite interactividad, arte, animaciones y visualización de datos.
-Processing es un lenguaje de programación (Un lenguaje de "preprocesamiento", es decir que facilita la lectura/escritura para el programador de un lenguaje más complejos.) que está orientado a artistas visuales, pero puede ser usado para cualquier tipo de interfaces gráficas interactivas.
Incluye métodos para renderizar y manipular imágenes.
Permite cargar archivos escritos en PJS y en Javascript y renderizarlos para su visualización online en un elemento <canvas> de HTML5.
Se puede usar como una librería (Framework) para trabajar con JavaScript o directamente todas las instrucciones escribirlas en lenguaje Processing para Javascript.
La página oficial es: ProcessingJavascript
Usos recomendado: Visualización de datos, animación de páginas web e interacción con el usuario.
Ver http://studio.processingtogether.com/sp/pad/iframe/ro.9N8vYeGizOHlQ/rev.3?a=false&autostart=0
Para saber si tienes WebGl en el navegador o para activarlo en Firefox. https://glatelier.org/2012/03/23/tip-activando-webgl-en-firefox/
La evolución de las tecnologías vinculadas con la Web ha hecho posible que se puedan implementar funcionalidades antes sólo posibles con Flash (Que debía comprarse)- Es algo importante si tenemos en cuenta que todo lo relacionado con lo multimedia cada vez tiene más fuerza en la web y las interacciones desde móviles, tablets y teléfonos inteligentes son cada vez más necesarias.
Se ha hecho posible gracias a la manipulación y transformación de imágenes desde el Navegador Web, lo que permite la creación de interfaces enriquecidas.
Han aparecido dos nuevas tecnologías que permiten éstos nuevos lenguajes y desarrollos:
1-La etiqueta <canvas> de HTML5 que permite dibujar gráficos al vuelo mediante JavaScript, la cual incluye métodos para dibujar líneas, puntos, formas e imágenes.
2-WebGL: API para renderizar gráficos en 2D y 3D en la web, con estándar abierto desarrollado por Mozilla, basado en OpenGL 2.0.
En torno a estos dos elementos han surgido librerías JavaScript que facilitan el trabajo a la hora de implementar filtros, control por capas, etc. Como pasa con las librerías JavaScript, no existe ninguna indiscutible, mejor o peor, por lo que se recomienda aprender algunas y ver en que proyectos se pueden utilizar mejor algunas que otras.
Leer aquí sobre tecnología WebGL: http://www.taringa.net/post/info/16658284/Proba-WebGL-Aceleracion-grafica-en-tu-navegador.html
Aquí está la Referencia oficial de ProcessingJavascript
Hay varias formas de usar processing en la web con processingJS, preprocesador de Javascript (Archivo .PJS) o processing preeprocesadore de Java (PDE) embebido. (Incluso pueden mezclarse processing y javascript en el código.-porque el navegador convertirá todo lo que es ProcessingJS en JS.)
Web con Ejemplos donde se muestra Processing para web: http://processingjs.nihongoresources.com/processing%20on%20the%20web/
Su Traduccion: https://translate.google.com.ar/translate?hl=es-419&sl=auto&tl=es&u=http%3A%2F%2Fprocessingjs.nihongoresources.com%2Fprocessing%2520on%2520the%2520web%2F
<script src= "processing-1.3.6.min.js" ></script>
<script type= "text/processing" data-processing-target= "processing-canvas" >
void setup () {
size ( 200 , 200 );
background ( 100 );
stroke ( 255 );
ellipse ( 50 , 50 , 25 , 25 );
println ( 'hello web!' );
}
</script>
<canvas id= "processing-canvas" > </canvas>
Este código es más complejo porque tiene que averiguar cuál es el lienzo que va con qué secuencia de comandos
(es decir, puede tener varios bocetos de procesamiento que viven en la misma página, y por lo tanto, múltiples lienzos).
También tenga en cuenta que los guiones incluyen un atributo de tipo, que distingue entre código JavaScript y código Processing
(el navegador ignorará las secuencias de comandos de procesamiento).
Tenga en cuenta usar la Identificación y atributos de destino para conectar la secuencia de comandos de processing
con el lienzo asociado.
Ejemplos
ORDENES PARA LA WEB
Crear Enlace: link() (Haciendo clic en el canvas se accede a un enlace web)
Estado: status() (Muestra el estado de una acción en pantalla con un cartel)
INTERACTIVIDAD PARA LA WEB
1-Acciones de Mouse
2-Acciones de Teclado
MANEJO DE ARCHIVOS
ALEATORIEDAD
Random
Noise
-----------------------------------
PROGRAMACIÓN
ESTRUCTURAS DE CONTROL
ITERACIÓN
Operador para: for()
Operador Mientras: while()
OPERADORES LÓGICOS
Operador Lógico Y: &&
Operador Lógico No: !
Operador Lógico O : ||
OPERADORES RELACIONALES
Igualdad ==
Mayor qué >
Mayor o igual qué: >=
desigual : !=
Menor qué: <
Menor o igual qué: <=
CONDICIONALES
DATOS
Salida de datos
Salida de texto y depuración
Salida de imágen
Salida de Archivos
INSTRUCCIONES PROCESSING Y ESTRUCTURA
Processing.js instructions
Structure
---------------------------------------
DISEÑO Y DIBUJO
COLOR E IMAGEN
SETEO DE CARACTERÍSTICAS DE COLOR DE IMAGEN
Creating & Reading
Image, Loading & Displaying
Pixels
Loading & Displaying
Entorno de la Escena
Rendering
Propiedades materiales
Coordinates
LUCES
CÁMARA
------------------------------------
CÁLCULOS MATEMÁTICOS
OPERADORES MATEMÁTICOS
Bitwise Operators
Cálculo
Trigonometry
Fecha y Hora
----------------------------------
TIPOGRAFÍA
Fuente
PFont
-----------------------
Comienzo rápido para desarrolladores que escriben código ProcessingJavascript
Processing.js de inicio rápido - Edición Procesamiento desarrollador
Introducción
Esta guía de inicio rápido está escrito desde el punto de vista de un desarrollador de processing sin conocimientos de HTML o JavaScript y sólo tiene el conocimiento de procesamiento básico necesario o está empezando a estudiarlo.
Processing.js está escrito en JavaScript, y utiliza el elemento <canvas> de HTML5. Convierte el código de procesamiento de JavaScript y lo ejecuta.
Para usarlo, descargar Processing.js aquí: descargas
Realiza tus Procesamiento de archivos .pde (processing) como lo harías normalmente, por ejemplo hola-web.pde
Crear una página web que incluya el código Processing.js (Como framework-librería) y un <canvas>
con información sobre dónde debe el código obtener el archivo de dibujo (se pueden especificar varios archivos .pde,
separándolos con espacios):
1 <script src= "processing-1.0.0.min.js" ></script> 2 <canvas data-processing-sources= "hello-web.pde" ></canvas>
Al cargar la página web, se analizará, traducirá y ejecutar su Sketch (boceto/escena/dibujo) en el navegador.
Una explicación más detallada
La Web: de Java a JavaScript
Processing se construyó utilizando Java. A mediados de la década de 1990, Java fue preparado para convertirse en el idioma de la web,
además, que se utilizaba para muchos desarrollos de programas, con applets de Java y otras tecnologías que se utilizan ampliamente en el lado del cliente.
Netscape, creó el lenguaje javascript inspirado en Java (pero que no es Java ni tienen compatibilidad) que eventualmente se convertiría en la lengua franca de la web basado en Java,
nombrado su lengua con el fin de alinearse con la creciente expectación en torno a Java.
Al final, Java se convirtió en una importante tecnología del lado del servidor y Javascript quedó como un lenguaje del lado del cliente y del navegador.
Hoy en día, la mayoría de los navegadores web todavía apoyan applets de Java, a través de un plugin binario.
La carga y descarga de archivos Java en la web es pesada su desarrollo no es aplicable en tiempos y costos a la web,
además la hace más inestable e insegura.
Los plugins como Java y Flash han caído en desgracia por algunas de estas razones, costos, peso, inseguridad, etc.
Hoy los estándares web para crear páginas requieren solo tres o 4 lenguajes HTML5, CSS3, JS, Canvas y SVG.
Con eso ya se construyen las mejores aplicaciones web del mundo, livianas, enriquecidas y potentes.
Processing.js utiliza estándares web modernos
Processing.js se construye utilizando JavaScript y HTML5.
Processing.js es realmente dos cosas:
-Un traductor de procesamiento a JavaScript (Un preprocesador);
-Una implementación de la API de Processing (por ejemplo, funciones como line(), stroke(), etc.).
Está escrito en JavaScript en lugar de Java.
Podría parecer extraño al principio de imaginar sus bocetos de procesamiento que se ejecutan en un navegador, por lo general sin modificaciones.
Pero esto es exactamente lo que permite Processing.js.
Processing.js convierte automáticamente el código de procesamiento de JavaScript.
Esto significa que usted no tiene que aprender JavaScript para poder ejecutar el código en un navegador.
Usted puede, literalmente, escribir el código utilizando el IDE de procesos que siempre tiene,
y seguir los pasos para ponerlo en marcha en la web.
No hay nada nuevo que aprender, solo conseguir una simple página web creada y allí pega su código processing .PDE
que se traducirá en código Javascript en el navegador, mediante la tecnología Web modernas que interpretan los navegadores web.
Debajo, Processing.js utiliza el nuevo elemento canvas de HTML5 para crear gráficos de su Escena (Sketch) bosquejo.
El elemento canvas es una nueva característica de la web y de que sea implementado o se implementará por todos los navegadores
web.
Las funciones de Processing de dibujo han sido reimplantado en Processing.js para utilizar el canvas (lienzo de dibujo),
por lo que cualquier navegador que soporte Canvas también soportará a ProcessingJavascript.
He aquí una muestra de un boceto en marcha Processing.js en el navegador.
Si usted puede ver su funcionamiento, su navegador es compatible con todo lo que necesita ya,
y puede seguir adelante con las instrucciones de más abajo.
No hay nada que usted debe hacer de manera diferente para escribir bocetos para Processing.js:
se escribe el código exactamente como Processing.js.
Para la mayoría de la gente, esto significará utilizando el IDE de procesamiento (Es decir que escriben el codigo
y lo crean en PDE),
que tiene la ventaja agradable de escribir, ejecutar y probar el código siempre en un mismo lugar (Carpepta) de nuestra PC.
Recuerde, que cualquier Escena de Processing válida, también debe ser una Escena de ProcessingJS válida.
Si desea experimentar con los editores de código Processing.js basados en la web, también puede probar:
1-Vamos a hacer un dibujo sencillo que es de 200 por 200 en tamaño
2-Establece el fondo a gris
3-Dibuja un pequeño círculo blanco
4-Imprime un mensaje a la consola de depuración:
Código de una programa minimalista en Processing
---------------------------------------------------------------------------------------------------------------------------------------
/*
Debemos declarar la Función constante (setup) que da el "seteo inicial" y las constantes (Datos que no variarán) de entorno que operarán en todo el programa.
Queremos que el programa tenga un fondo de color determinado un tanmaño de lienzo determinado para dibujar y un determinado color para líneas, textos y formas.
Todo ello se setea al inicio como constantes del programa.
*/
void setup () {
size ( 200 , 200 );
background ( 100 );
stroke ( 255 );
ellipse ( 50 , 50 , 25 , 25 );
println ( "hello web!" );
}
-------------------------------------------------------------------
--> Aquí podemos verlo en acción
Vamos a suponer que guardó a continuación a un archivo llamado hello-web.pde
Processing.js es una biblioteca JavaScript que está destinado a ser incluido en una página web.
Usted no tiene que compilar e informar a su servidor web al respecto, etc.
Simplemente tiene que incluirlo en una página web y el navegador se encargará del resto.
Puede descargar el framework Processing.js vaya a página de descarga .
La biblioteca se presenta en un número de formas, por ejemplo:
procesamiento 1.0.0.js (El número indica la versión en que se está trabajando)
procesamiento 1.0.0.min.js (La versión más reducida con carga más rápida para optimizar los trabajos en la web)
La versión .min es Processing.js en una forma miniaturizada, lo que significa que será más pequeño para manejarlo en la web (minified JavaScript utiliza trucos como la eliminación de espacios en blanco y cambiar el nombre de los nombres de variables de larga duración a las letras individuales).
Ahora vamos a crear una página Web ProcessingJavascript
Aquí está tu primera página web Processing.js:
<script src= "processing-1.0.0.min.js" ></script> <canvas data-processing-sources= "hello-web.pde" ></canvas>
Sin <html> o <body>, sin título, sin CSS, simplemente el guión Processing.js, y un lienzo y funciona.
En primer lugar, la etiqueta script tiene un atributo src, que es el archivo a cargar.
Esto podría ser una URL completa o una ruta relativa.
En este caso, el navegador va a buscar un archivo llamado procesamiento-1.0.0.min.js en el mismo directorio que su página web.
La segunda cosa en esta página web es una etiqueta <canvas>.
Nótese que también tiene un atributo,procesadoras de datos-sources. Esta es una lista de nombres de archivo (o apenas un nombre de archivo si sólo tiene 1 archivo) separados por espacios (los nombres de archivos y URL en la web no puede incluir espacios, por lo que el espacio es una opción segura para la separación de las listas).
En este caso, el navegador va a buscar un archivo llamado hello-web.pde ubicado en el mismo directorio que su página.
¿Cómo sabe el navegador cómo cargar un archivo de procesamiento * .pde? Processing.js se encarga de esto, y descargará, analizar (es decir, se traducen en JavaScript), a continuación, ejecute de forma automática cuando se carga la página.
Guarde este archivo en el mismo directorio que hola-web.pde y procesamiento-1.0.0.min.js y llamarlo hola-web.html.
Si eres el tipo de persona que no le gusta tomar atajos, esto es lo que una página web más completa podría ser:
<!DOCTYPE html>
<html>
<head>
<title> Hello Web - Processing.js Test </title>
<script src= "processing-1.0.0.min.js" ></script>
</head>
<body>
<h1>Prueba de Processing-Javascript</h1>
<p> This is my first Processing.js web-based sketch: </p>
<canvas data-processing-sources= "hello-web.pde" ></canvas>
</body>
</html>
Ambas formas funcionan.
-----------------------------------
Aquí hay algunos trucos y consejos
a medida que empezar a trabajar en los bocetos
más complejas en Processing.js.
-Processing.js no tiene directorio de datos:
Procesamiento utiliza el concepto de único directorio de datos, donde se encuentran las imágenes y otros recursos.
Processing.js no incluye esto y como resultado, siempre se debe proporcionar carpetas de archivo (por ejemplo, /imágenes/),
que son relativos a su página web como es habitual en diseño web.
Processing.js implementa procesamiento, pero no todos de Java
Processing.js es compatible con Processing, pero nunca será totalmente compatible con Java.
Si el Sketch utiliza funciones o clases que no se definen como parte del procesamiento no se aconseja trabajar con PJS.
La bibliotecas que se escriben para su Processing, que están escritos en Java, generalmente no funcionan en PJS.
Processing-JS solamente tiene dos modos de renderizado
PJS (igual que PS) tienen muchos modos de renderizado a elegir, dependiendo de la calidad deseada y la velocidad de los gráficos. (OpenGL, P3D, Java2D,
etc.)
-Processing-JS para uso de <canvas> que proporciona un contexto de dibujo 2D o 3D de contexto basado en WebGL (una versión de OpenGL para la web).
-Por lo tanto, lo que usted elija, el resultado final se basará en si utiliza contexto 2D o 3D.
Un error de traducción entre lenguajes
División que se espera que produzca un número entero puede ser que necesite una conversión explícita
Hay una clase de errores que surgen al convertir código de processing a Processing-JS entre números enteros y la división
de coma flotante.
Lo que era resultado de la división de enteros en el código de Processing, cuando se convierte a Processing.js,
a veces puede llegar a ser problemático, ya que los números se convierten en dobles e introducen una parte fraccionaria.
La solución es convertir explícitamente cualquier división de un entero que tenga este comportamiento:
1 // before 2 int g = mouseX / i ; 3 4 // after 5 int g = ( int )( mouseX / i );
JavaScript y Processing-JS, no tienen un tipo de datos "char"
JavaScript sólo sabe acerca de los números y cadenas, (Java, también sabe acerca de los tipos de datos "char").
"Char"es un valor entero de 16 bits, que también puede ser una letra (de la página de códigos ISO8859-1 para los primeros 256 números,
y básicamente, la magia después de eso).
Desafortunadamente, como JavaScript no tiene equivalente, basándose en comparaciones char a ser números o letras es bastante probable
que cause problemas. Si tiene código de procesamiento donde se está comparando caracteres, usted tendrá que llevar a cabo int fundición,
colada o cadena, usando el int () y str () funciones, para que sepa que está comparando explícitamente los tipos de datos que
JavaScript puede tratar con.
Processing.js tiene que hacer trampa para simular síncronas de procesamiento de E / S
Processing utiliza un modelo de E / S síncrona, lo que significa que funciona como loadImage () toman tiempo para ejecutar, y mientras se están ejecutando, no ocurre nada más: el programa espera hasta queloadImage () se realiza antes de pasar a la siguiente instrucción. Esto significa que usted puede contar con el valor devuelto por una función como loadImage () siendo utilizable en la siguiente línea de código.
navegadores web no funcionan de esta manera. La web utiliza un / modelo asíncrono I O, lo que significa que las funciones que se cargan los recursos externos no pueden hacer que el programa espera hasta que terminen. Con el fin de replicar las funciones * La carga de procesamiento, usted tiene que utilizar una directiva Processing.js especial.
Las Directivas Processing.js son pistas para el navegador que están inscritos en los comentarios y no en el código de procesamiento en sí. He aquí un esbozo de procesamiento típica que se carga una imagen de forma sincrónica y luego dibuja:
1 PImage img ; 2 3 void setup () { 4 img = loadImage ( "picture.jpg" ); 5 image ( img , 0 , 0 ); 6 }
Este código no funcionará en el navegador con Processing.js, porque la llamada a la imagen () va a pasar antes de que el picture.jpg archivo se ha descargado. La solución es preguntar Processing.js para descargar la imagen antes de que comience el boceto, y almacenar en caché que - una técnica conocida como la precarga. Aquí está el código modificado:
1 /* @pjs preload="picture.jpg"; */ 2 PImage img ; 3 4 void setup () { 5 img = loadImage ( "picture.jpg" ); 6 image ( img , 0 , 0 ); 7 }
Observe la línea de comentario adicional en la parte superior del código. La directiva @pjs es para Processing.js, y no el desarrollador. Piense en ello como una línea adicional de código que se ejecutará antes de que comience el programa.
Si tiene varias imágenes para cargar, utilizar una lista de este modo:
1 /* @pjs preload="picture.jpg,picture2.jpg,picture3.png"; */
Processing.js requiere más cuidado con la variable de nombres de Procesamiento
Una de las características de gran alcance de JavaScript es su naturaleza dinámica, sin tipo. Donde mecanografiado lenguajes como Java, y por lo tanto de procesamiento, se puede volver a utilizar los nombres sin temor a la ambigüedad (por ejemplo, la sobrecarga de métodos), Processing.js no puede. Sin entrar en el funcionamiento interno de JavaScript, el mejor consejo para los desarrolladores de procesamiento es no utilizar la función / clase / etc. Procesamiento de nombres como nombres de variables. Por ejemplo, unalínea variable llamada podría parecer razonable, pero va a causar problemas con la función de nombre similar línea () Procesamiento en-construido y Processing.js. Esto es igualmente cierto para las funciones y las funciones que se crean incorporadas. Una buena por reglas de oro es: no tener una variable foo en el mismo esquema como una función foo ();.
Processing.js necesita su ayuda al redefinir los métodos de superclase sobrecargados
Si el código utiliza subclases que tienen preferencia sobre uno o más métodos sobrecargados en la superclase, necesitará "ficticia" anula por cada firma de método que normalmente dejaría sin tocar:
1 class X 2 { 3 void doSomething () 4 { 5 ... 6 } 7 8 void doSomething ( float x , float y ) 9 { 10 ... 11 } 12 } 13 14 class Y extends X 15 { 16 void doSomething () 17 { 18 // different code from compared to the super class 19 } 20 21 // even though we don't override this method, 22 // its signature must be added to prevent Pjs 23 // from getting the method chain wrong: 24 void doSomething ( float x , float y ) 25 { 26 super . doSomething ( x , y ); 27 } 28 }
A pesar de que en el procesamiento no será necesario para poner en práctica el método de fallthrough doSomethign con un (float, float) de la firma, si lo hace casi siempre es necesario para asegurarse de Processing.js no se confunda sobre el método de qué clase de llamar.
Llamando de color () con valores fuera de la gama de colores produce impredecibles
También en la clase de número entero frente a los problemas de punto flotante, el color (número) y el color (número, número) no pueden comportarse de manera muy como se esperaba. En Procesamiento nativo, color (int) y color (float) se comportan de manera diferente en que el primero se utiliza para los números enteros a todo color. el color llamando al (# FF0000) y color (16.711.680) son la misma llamada, por lo que producen un color rojo. Sin embargo, cuando se utiliza flotador valora el color () / 1 función trata la entrada como valores de gris, entre el 0 y el valor máximo indicado (255 por defecto). Cualquier valor menor que 0 o mayor que max es simplemente un tope. Debido al número entero frente a problemas de punto flotante con JavaScript, Processing.js no realiza ninguna nivelación, y por lo tanto a pesar de que el siguiente código mostrará un una línea blanca en el Procesamiento y negro, se mostrará una línea amarilla, y un "invisible "línea en Processing.js lugar.
1 void setup () 2 { 3 size ( 100 , 100 ); 4 noLoop (); 5 } 6 7 void draw () 8 { 9 background ( 127 ); 10 stroke (- 200.0 ); 11 line ( 0 , 25 , width , 25 ); 12 stroke ( 600.0 ); 13 line ( 0 , 75 , width , 75 ); 14 }
Recomendamos que siempre desinfectar sus entradas para el color si usted necesita colores para estar "en línea", y sólo usamos colores hexagonales, el uso del color (#RRGGBB), o RGB / colores RGBA, el uso del color (R, G, B) y color (r, g, b, a)