Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 4, 2014 12:16:41

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib

Доброго времени суток!
Пишу свою игру “Жизнь”. Весь функционал написан, работает… Вопрос возникает в графике. Задумал отрисовать все это с помощью matplotlib, но не могу разобраться нормально. Подскажите пожалуйста как мне анимировать картинку? Или может использовать другое решение?

Офлайн

#2 Окт. 4, 2014 12:52:14

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

matplotlib

pygame

Офлайн

#3 Окт. 5, 2014 00:58:46

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

matplotlib

mma689
matplotlib совсем для другого. Это условная реплика функционала MATLAB для отрисовки графиков,а не графики



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Окт. 5, 2014 07:42:34

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib

import numpy as np
import matplotlib.pyplot as plt
n=10
fig = plt.figure(num=1, dpi=100, facecolor='w', edgecolor='w')
plt.ion()
while(True):
    a=np.random.randint(2,size=(n,n))
    for i in range(0,n):
        for j in range(0,n):
            if(a[i][j]==0):
                im=plt.plot(i,j,'ro')
            else:
                im=plt.plot(i,j,'bs')
    plt.draw()
    fig.clear()
Но в чем проблема?
а)Утекает память.
б)После нескольких итераций виснет оО

Отредактировано mma689 (Окт. 5, 2014 08:13:31)

Офлайн

#5 Окт. 6, 2014 01:17:56

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

matplotlib

mma689
а) я не вижу утечки памяти

б) код входит в бесконечный цикл (while True) который выполняет отрисовку одного и того же (!) набора данных. Сам процес отрисовки ресурсозатратный. поэтому получается что программа “виснит”, ведь по сути она выполняет ровно то что ей вы задали - бекончено рисовать один и тот же набор данных



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Окт. 6, 2014 14:02:38

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib

а)Хммм….

б)Почему одного и того же? С каждым проходом по циклу while генерируется новый массив => происходит разная отрисовка. Или важна суть именно новой точки, а не ее цвета?

Офлайн

#7 Окт. 6, 2014 23:51:12

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

matplotlib

mma689
прошу прощения, был не прав. Дело не в наборах данных, а в самом matplotlib, “виснит” даже не он, а окно которое пытается отрисовать все это. Попробуйте запустить ваш код и передвинуть окно - оно “зависнет”.
Так что как то так.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#8 Окт. 7, 2014 11:27:05

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib

JOHN_16
Вот да… И в чем же проблема? Я так понимаю функции типа animation позволяют рисовать, но подходит ли это для цикла типа While(True)?
Или не могли бы Вы подсказать какое решение? Я частично уже потыкался в pygame, успех кое какой есть, но как минимум надо обточить алгоритм, ибо там выдает очень маленьких фпс.

Офлайн

#9 Окт. 7, 2014 11:47:10

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

matplotlib

mma689
я не подскажу, могу лишь посоветовать посмотреть открытые проекты (игры) сделанные на pygame. Возможно подчеркнете для себя много полезного. В целом, насколько я видел, недостатка быстродействия там для подобных задач там не наблюдается.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Окт. 7, 2014 12:47:09

mma689
Зарегистрирован: 2014-08-14
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib

JOHN_16
Жаль, но спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version