processing多个圆随着鼠标的移动远离鼠标
时间: 2023-11-25 11:07:54 浏览: 65
圆随鼠标点击移动
4星 · 用户满意度95%
你可以使用Processing中的PVector类来实现多个圆随着鼠标的移动远离鼠标的效果。具体实现步骤如下:
1. 定义一个Circle类,其中包含圆的位置和速度(用PVector表示)等信息。
2. 在draw()函数中,遍历所有的圆,计算每个圆与鼠标之间的距离,如果距离小于某个阈值,则将圆的速度指向鼠标,并将速度按照一定比例缩小,使得圆可以逐渐远离鼠标。
3. 根据每个圆的速度更新圆的位置,绘制圆。
下面是一个简单的示例代码:
```java
ArrayList<Circle> circles;
void setup() {
size(400, 400);
circles = new ArrayList<Circle>();
for (int i = 0; i < 10; i++) {
circles.add(new Circle(random(width), random(height)));
}
}
void draw() {
background(255);
for (Circle c : circles) {
float d = dist(c.pos.x, c.pos.y, mouseX, mouseY);
if (d < 100) {
PVector dir = PVector.sub(c.pos, new PVector(mouseX, mouseY));
dir.normalize();
dir.mult(0.1);
c.vel.add(dir);
}
c.vel.mult(0.98);
c.pos.add(c.vel);
c.display();
}
}
class Circle {
PVector pos, vel;
Circle(float x, float y) {
pos = new PVector(x, y);
vel = new PVector();
}
void display() {
ellipse(pos.x, pos.y, 20, 20);
}
}
```
阅读全文