当前位置: 首页 > 知识库问答 >
问题:

为什么这个处理代码创建递减跟踪?

袁阿苏
2023-03-14

我正在通过处理学习java。

代码执行以下操作。

1)调用Setup,并初始化大小为700,300的窗口。

Spot[] spots; // Declare array
void setup() {
  size(700, 100);
  int numSpots = 70; // Number of objects
  int dia = width/numSpots; // Calculate diameter
  spots = new Spot[numSpots]; // Create array
  for (int i = 0; i < spots.length; i++) {
    float x = dia/2 + i*dia;
    float rate = random(0.1, 2.0);
    // Create each object
    spots[i] = new Spot(x, 50, dia, rate);
  }
  noStroke();
}
void draw() {
  fill(0, 12);
  rect(0, 0, width, height);
  fill(255);
  for (int i=0; i < spots.length; i++) {
    spots[i].move(); // Move each object
    spots[i].display(); // Display each object
  }
}
class Spot {
  float x, y;         // X-coordinate, y-coordinate
  float diameter;     // Diameter of the circle
  float speed;        // Distance moved each frame
  int direction = 1;  // Direction of motion (1 is down, -1 is up)

  // Constructor
  Spot(float xpos, float ypos, float dia, float sp) {
    x = xpos;
    y = ypos;
    diameter = dia;
    speed = sp;
  }

  void move() {
    y += (speed * direction); 
    if ((y > (height - diameter/2)) || (y < diameter/2)) { 
      direction *= -1; 
    } 
  }

  void display() {
    ellipse(x, y, diameter, diameter);
  }
}

for (int i=0; i < spots.length; i++) {
spots[i].move(); // Move each object
spots[i].display(); // Display each object
}

共有1个答案

宁侯林
2023-03-14

sceen永远不会被清除,所以当新的斑点被添加到新的帧中的场景时,在前一帧中绘制的斑点仍然存在。

说明书

fill(0, 12);
rect(0, 0, width, height);

在整个视图上绘制一个透明的黑色矩形。所以前几帧的斑点似乎会随着时间的推移而逐渐消失。由于“较老”的斑点已经被透明矩形覆盖了五月的时间,它们变成了深灰色。“更年轻”的斑点只是被覆盖了几次,呈现浅灰色。由于填充颜色为白色(填充(255);),立即绘制的斑点是白色的

fill(0, 50);
 类似资料:
  • 错误:无法找到或加载主类MyGridLayout.MyGridLayout C:\users\home\AppData\local\netbeans\cache\8.2\executor-snippets\run.xml:53:Java返回:1构建失败(总时间:0秒)

  • 我真的很困惑为什么这个代码不起作用。我从一个SO页面获得了关于遍历DOM的代码。

  • 问题内容: 我正在阅读DigitalOcean的golang客户程序。我注意到他们在变量中创建了* Op结构的实例。示例:https: //github.com/digitalocean/godo/blob/master/droplets.go#L32 为什么需要此行? 问题答案: 该行是*DropletsServiceOp满足DropletsService接口的编译时检查。 该行对程序的执行没有

  • const dataItem = (msg.data && msg.data[0]) || msg; 如果msg.data和msg.data[0]都为真时返回msg.data[0],否则返回msg?

  • 这是我的密码-------- 当我尝试对.post(/register…)路由进行邮递员测试时,它会暂停加载几分钟,然后给出错误-- “无法得到任何响应 连接到 http://localhost:5000/api/users/register 时出错。为什么会发生这种情况: 服务器无法发送响应:确保后端正常工作 自签名 SSL 证书被阻止:通过在“设置”中关闭“SSL 证书验证”来解决此问题 请求

  • 因此,我开始开发x86\u 64 hobby内核,我发现这段代码用于加载GDT(全局描述符表),但我不知道它是做什么的。 我知道它从rdi寄存器(sysv abi中函数调用的第一个参数的寄存器)加载我的gdt描述符,但我不知道为什么我需要将所有段寄存器设置为0x10,其余的是什么黑魔法?