Programación creativa en procesamiento | Conjunto 1 (caminante aleatorio)

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 Walkerclase y la llamaremos dentro de la draw()función en el boceto. También agregamos una checkEdges()función Walkerpara evitar que el Walkerobjeto se salga de la pantalla. También debemos modificar el boceto para incluir las nuevas funciones que agregamos en la Walkerclase. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *