Java 在Processing中的创意编程

Java 在Processing中的创意编程

创意编程是一种编程方法,其目标是创造一些具有表现力和视觉的东西,而不是纯粹的功能。这种类型的编程方法被用来创建现场艺术作品、图形模拟和可视化算法。有许多用于创意或视觉编程的工具和库,其中Processing是最广泛使用的。Processing是一种开源的编程语言和集成开发环境,为可视化编程而建立。Processing可以在这里免费下载。它也可以作为一个python方言( processing.py )和一个javascript框架( p5.js )。在这篇文章中,我们将建立一个简单的随机行走程序,它只是一个在画布上随机移动的球。

每个处理草图通常由两个函数组成,即

  • setup() – 它在开始时被调用一次,通常用于初始化目的。
  • draw() – 默认每秒调用30次,使动画的默认帧率为每秒30帧。

草图的实现-

样本代码是用java写的,使用了处理库和处理IDE。

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
}

实现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);
    }
}

在这一点上,如果我们运行草图,它只是显示一个位于输出屏幕中心的球-
为了移动步行者对象,我们将在步行者类中添加一个walk()函数,并在草图中的draw()函数中调用它。我们还在Walker中添加一个checkEdges()函数,以防止Walker对象移动到屏幕之外。我们还必须修改草图以包括我们在Walker类中添加的新函数。我们还可以再做一件事,把background()函数移到setup()里面。这样一来,背景就不会每次都被更新,我们就能看到步行者对象留下的痕迹了。

修改后的草图的实现

// 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
}

修改后的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);
    }
}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程