processing里让不同的圆随着鼠标移动一点,圆就远离鼠标一点
时间: 2024-03-11 12:48:03 浏览: 22
你可以使用 `dist()` 函数计算两个点之间的距离,然后根据距离来控制圆的移动速度和方向。以下是一个简单的示例代码,你可以根据自己的需求进行修改:
```python
class Circle:
def __init__(self, x, y, r):
self.x = x
self.y = y
self.r = r
def move_away(self, target_x, target_y, speed):
# 计算圆心到目标点的距离
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 * speed
self.y += dy * move_dist * speed
def draw(self):
ellipse(self.x, self.y, self.r * 2, self.r * 2)
circles = []
num_circles = 10
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, 0.1)
# 绘制圆
circle.draw()
```
在这个示例中,我们创建了多个圆对象,并将它们存储在一个列表中。在 `draw()` 函数中,我们遍历这个列表,对于每个圆,调用 `move_away()` 方法来让它远离鼠标,然后调用 `draw()` 方法来绘制圆。在 `move_away()` 方法中,我们使用 `dist()` 函数计算圆心和鼠标之间的距离,并根据距离计算需要移动的距离和移动的方向向量。最后,根据速度和方向移动圆。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)