La programación creativa es un tipo de enfoque de programación en el que el objetivo es crear algo expresivo y visual en lugar de algo puramente funcional. Este tipo de enfoque de programación se utiliza para crear obras de arte en vivo, simulaciones gráficas y algoritmos de visualización. Existe una serie de herramientas y bibliotecas para la programación creativa o visual de las cuales Processing es la más utilizada. Processing es un lenguaje de programación de código abierto e IDE que se creó con fines de programación visual. Processing está disponible para su descarga gratuita aquí . También está disponible como un dialecto de Python ( procesamiento.py ) y un marco de JavaScript ( p5.js ). En este artículo, construiremos un programa de caminante aleatorio simple que es solo una bola que se mueve aleatoriamente por el lienzo.
Cada boceto de procesamiento generalmente consta de dos funciones:
setup()
– Se llama una vez al principio y generalmente se usa con fines de inicialización.draw()
– Se llama 30 veces por segundo de forma predeterminada, lo que hace que la velocidad de fotogramas predeterminada de la animación sea de 30 fotogramas por segundo.
Implementación de sketch
: los códigos de muestra se han escrito en Java utilizando la biblioteca de procesamiento y el IDE de procesamiento.
Walker w; // Walker object void setup() // Called at the beginning once { size(640, 360); // Declaring size of the output window w = new Walker(); // Initializing the new walker object } void draw() // Called every frame { background(255); // Setting a white background w.display(); // Displaying the walker object }
Implementación de la clase Walker-
class Walker // The walker class { PVector location; // A vector object representing the location Walker() // Constructor to initialize the data member. { // Initial location of the walker object is // set to the middle of the output window. location = new PVector(width / 2, height / 2); } void display() // Function to display the walker object { // Drawing a black circle of radius 10 at location fill(0); ellipse(location.x, location.y, 10, 10); } }
En este punto, si ejecutamos el boceto, solo muestra una bola que se encuentra en el centro de la pantalla de salida.
Para mover el objeto caminante, agregaremos una walk()
función a la Walker
clase y la llamaremos dentro de la draw()
función en el boceto. También agregamos una checkEdges()
función Walker
para evitar que el Walker
objeto se salga de la pantalla. También debemos modificar el boceto para incluir las nuevas funciones que agregamos en la Walker
clase. También podemos hacer una cosa más, mover la background()
función dentro setup()
. De esta manera, el fondo no se actualizará cada vez y podremos ver el rastro que deja el objeto Walker.
Implementación modificada de sketch-
// Program to implement random walker Walker w; // Walker object void setup() // Called at the beginning once { size(640, 360); // Declaring size of the output window background(255); // Setting a white background w = new Walker(); // Initializing the new walker object } void draw() // Called every frame { w.walk(); // Walking the Walker object w.checkEdges(); // Checking for edges of the output screen. w.display(); // Displaying the walker object }
Implementación modificada de la clase Walker-
class Walker // The walker class { PVector location; // A vector object representing the location Walker() // Constructor to initialize the data member. { // Initial location of the walker object is // set to the middle of the output window. location = new PVector(width / 2, height / 2); } void walk() { // The x and y values of the location // vector are incremented by a random value // between -5 and 5 location.x += random(-5, 5); location.y += random(-5, 5); } // Function to prevent the Walker to move out of the screen void checkEdges() { if (location.x < 0) location.x = 0; else if (location.x > width) location.x = width; if (location.y < 0) location.y = 0; else if (location.y > height) location.y = height; } void display() // Function to display the walker object { // Drawing a black circle of radius 10 at location fill(0); ellipse(location.x, location.y, 10, 10); } }
Este artículo es una contribución de Soumik Rakshit . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA