Creative programming is a type of programming approach in which the goal is to create something expressive and visual instead of something that is purely functional. This type of programming approach is used to create live artworks, graphical simulations and visualize algorithms. There exists a number of tools and libraries for creative or visual programming of which Processing is the most widely used. Processing is an open source programming language and IDE that built for visual programming purposes. Processing is available for free download here. It is also available as a python dialect(processing.py) and a javascript framework(p5.js). In this article we will build a simple random walker program which is just a ball moving randomly across the canvas.
Each processing sketch typically consists of two functions-
- setup() – It is called once at the beginning and is generally used for initialization purposes.
- draw() – It is called 30 times per second by default making the default framerate of the animation being 30 frames per second.
Implementation of sketch- The sample codes have been written in java using the processing library and the processing IDE.
Java
Walker w;
void setup()
{
size( 640 , 360 );
w = new Walker();
}
void draw()
{
background( 255 );
w.display();
}
|
Implementation of Walker class-
Java
class Walker
{
PVector location;
Walker()
{
location = new PVector(width / 2 , height / 2 );
}
void display()
{
fill( 0 );
ellipse(location.x, location.y, 10 , 10 );
}
}
|
At this point if we run the sketch, it just displays a ball that sits at the centre of the output screen- In order to move the walker object, we will add a walk() function to the Walker class and call it inside the draw() function in the sketch. We also add a checkEdges() function in Walker to prevent the Walker object from moving out of the screen. We must also modify the sketch to include the new functions we add in the Walker class. We can also do one more thing, move the background() function inside setup(). This way, the background will not be updated every time and we will be able to see the trail, the Walker object leaves behind.
Modified Implementation of sketch-
JavaScript
Walker w;
void setup()
{
size(640, 360);
background(255);
w = new Walker();
}
void draw()
{
w.walk();
w.checkEdges();
w.display();
}
|
Modified Implementation of Walker class-
JavaScript
class Walker
{
PVector location;
Walker()
{
location = new PVector(width / 2, height / 2);
}
void walk()
{
location.x += random(-5, 5);
location.y += random(-5, 5);
}
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()
{
fill(0);
ellipse(location.x, location.y, 10, 10);
}
}
|
If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Feeling lost in the vast world of Backend Development? It's time for a change! Join our
Java Backend Development - Live Course and embark on an exciting journey to master backend development efficiently and on schedule.
What We Offer:
- Comprehensive Course
- Expert Guidance for Efficient Learning
- Hands-on Experience with Real-world Projects
- Proven Track Record with 100,000+ Successful Geeks
Last Updated :
14 Mar, 2023
Like Article
Save Article