случайное движение множества точек
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# Функция для обновления позиций точек
def update_positions(points, num_points, step_size=0.1):
# Добавляем случайное смещение к каждой точке
for i in range(num_points):
dx = np.random.uniform(-step_size, step_size) # Случайное смещение по x
dy = np.random.uniform(-step_size, step_size) # Случайное смещение по y
points[i][0] += dx
points[i][1] += dy
return points
# Основная функция
def animate_points():
try:
num_points = int(input("Введите количество точек: "))
if num_points <= 0:
print("Количество точек должно быть положительным числом.")
return
except ValueError:
print("Введите корректное число.")
return
# Инициализация позиций точек (случайные координаты от 0 до 1)
points = [[np.random.random(), np.random.random()] for _ in range(num_points)]
# Создание фигуры и осей
fig, ax = plt.subplots()
scatter = ax.scatter([p[0] for p in points], [p[1] for p in points])
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_title(f"Случайное движение {num_points} точек")
# Функция для обновления анимации
def animate(frame):
nonlocal points
points = update_positions(points, num_points)
x_data = [p[0] for p in points]
y_data = [p[1] for p in points]
scatter.set_offsets(np.c_[x_data, y_data])
return scatter,
# Создание анимации
ani = FuncAnimation(fig, animate, frames=100, interval=50, blit=True)
# Показ анимации
plt.show()
# Запуск программы
if __name__ == "__main__":
animate_points()
Свидетельство о публикации №125111807175