processing里让5个的圆随着鼠标移动一点,圆就远离鼠标一点
时间: 2024-03-11 21:48:07 浏览: 19
以下是一个示例代码,展示如何让5个圆随着鼠标移动,离鼠标越远移动越快,你可以根据自己的需求进行修改:
```python
class Circle:
def __init__(self, x, y, r):
self.x = x
self.y = y
self.r = r
self.speed = 0.1
def move_away(self, target_x, target_y):
# 计算圆心到目标点的距离
d = dist(self.x, self.y, target_x, target_y)
# 计算需要移动的距离
move_dist = self.r + 10 - d
# 计算移动的方向向量
dx = (self.x - target_x) / d
dy = (self.y - target_y) / d
# 根据速度和方向移动圆
self.x += dx * move_dist * self.speed
self.y += dy * move_dist * self.speed
# 限制速度的最大值
self.speed = min(0.5, self.speed * 1.1)
def draw(self):
ellipse(self.x, self.y, self.r * 2, self.r * 2)
circles = []
num_circles = 5
for i in range(num_circles):
x = random(width)
y = random(height)
r = random(20, 50)
circles.append(Circle(x, y, r))
def setup():
size(400, 400)
def draw():
background(255)
for circle in circles:
# 让圆远离鼠标
circle.move_away(mouseX, mouseY)
# 绘制圆
circle.draw()
```
在这个示例中,我们创建了5个圆对象,并将它们存储在一个列表中。在 `draw()` 函数中,我们遍历这个列表,对于每个圆,调用 `move_away()` 方法来让它远离鼠标,然后调用 `draw()` 方法来绘制圆。在 `move_away()` 方法中,我们使用 `dist()` 函数计算圆心和鼠标之间的距离,并根据距离计算需要移动的距离和移动的方向向量。然后根据速度和方向移动圆,并限制速度的最大值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)