mise à jour graphique et de mise à jour de l'axe x:
par exemple
def update_xaxis(self,*args):global graph
global cnt
graph.xmin = cnt -50
graph.xmax = cnt
def update_points(self,*args):global i
global MYLIST
global cnt
#self.plot.points = [(i,i)]
self.plot.points =[z for z in MYLIST]
Il est écrit avec Pygame et utilise une vague fichier audio comme source d'entrée, mais vous pouvez également utiliser d'autres sources (par exemple des données en série ou une courbe calculée).
Le problème avec Youscope est que je ne suis pas en mesure de construire un APK pour Android. J'ai essayé d'installer le sous-ensemble de python pour android, mais je reçois toujours des messages d'erreur lors de la construction. (Pas compris quel est le problème.)
J'ai donc décidé de port la Youscope code de Kivy car avec Buildozer je peux faire Android Apk. (Pas testé pour construire le graphique app encore, mais cela devrait fonctionner.)
Youscope avec Kivy
Le dessin semble fonctionner dans kivy aussi vite que le code d'origine mais pour le moment je suis coincé à redessiner la courbe. Mais je pense que le dessin doit être plus rapide peut-être le calcul des points est trop long.
Je pense que je doit vérifier un WAV-fichier comme entrée, et si c'est plus rapide.
De l'horloge.schedule_intervall (Kivy) vs boucle de jeu (Pygame)
La source pour Kivy est assez similaire à la pygame code, mais dans Kivy est pas de boucle de jeu avec une boucle while.
Dans Kivy vous utilisez des rappels avec l'Horloge.schedule_intervall(callback, time_in_sec) (voir http://kivy.org/docs/api-kivy.clock.html) pour la mise à jour/le dessin de l'écran.
La courbe est tracée de gauche à droite, point par point.
Avec redessiner je veux dire que je dessine la première courbe (je suis en utilisant un calcul de l'onde sinusoïdale) sur le framebuffer et après j'ai atteint le bord droit de l'écran, je commence à dessiner à partir de la gauche à nouveau avec la nouvelle courbe.
Et maintenant, il y a toujours dessiné précédemment courbe qui doit être nettoyé. Vous pourrait redessiner la totalité de l'écran ici, mais c'est probablement plus lent que d'enlever l'ancienne ligne point par point.
La difficulté ici est de restaurer la couleur d'arrière-plan qui est en dessous de la courbe de vieux. On dirait que je suis de la couleur de la mauvaise pixel, mais je ne suis pas sûr de ce qui est mauvais.
Get_pixel_color() pour l'actualisation de l'écran
Avec Le Framebuffer.get_pixel_color(wx,wy) (Kivy 1.8.0 nécessaire), vous pouvez obtenir la couleur d'un pixel dans rgba et qui ne fonctionne pas correctement. C'est peut-être une mise à jour de la question, mais je ne suis pas sûr.
De compensation avec un pixel noir (avec sortie get_pixel_color) est un travail, mais qui enlève la grille d'arrière-plan.
définir votre parcelle de terrain
par exemple
définir graphique
par exemple
mise à jour graphique et de mise à jour de l'axe x:
par exemple
appeler une Horloge
par exemple
et ajouter le widget:
J'espère que je n'ai pas oublié quoi que ce soit. Il vous donne l'exécution graphique avec kivy Jardin.
OriginalL'auteur BlueDog
Il y a un graphique widget dans le kivy jardin. Vous pouvez lire à propos de l'utilisation du jardin des widgets dans kivy de la documentation.
Je ne le pense pas. On peut avoir un projet gsoc dans matplotlib l'appui de cette année.
OriginalL'auteur inclement
J'essaie aussi de faire un graphique en temps réel dans Kivy.
Youscope
J'ai commencé avec Youscope. Une démo de youscope vous pouvez le voir dans la suite de la vidéo de youtube https://www.youtube.com/watch?v=-1E0DpQ_cFo
Et le code source est ici: https://code.google.com/p/felipesanches/source/browse/trunk/youscope-emu/youscope-emu.py
Il est écrit avec Pygame et utilise une vague fichier audio comme source d'entrée, mais vous pouvez également utiliser d'autres sources (par exemple des données en série ou une courbe calculée).
Le problème avec Youscope est que je ne suis pas en mesure de construire un APK pour Android. J'ai essayé d'installer le sous-ensemble de python pour android, mais je reçois toujours des messages d'erreur lors de la construction. (Pas compris quel est le problème.)
J'ai donc décidé de port la Youscope code de Kivy car avec Buildozer je peux faire Android Apk. (Pas testé pour construire le graphique app encore, mais cela devrait fonctionner.)
Youscope avec Kivy
Le dessin semble fonctionner dans kivy aussi vite que le code d'origine mais pour le moment je suis coincé à redessiner la courbe. Mais je pense que le dessin doit être plus rapide peut-être le calcul des points est trop long.
Je pense que je doit vérifier un WAV-fichier comme entrée, et si c'est plus rapide.
De l'horloge.schedule_intervall (Kivy) vs boucle de jeu (Pygame)
La source pour Kivy est assez similaire à la pygame code, mais dans Kivy est pas de boucle de jeu avec une boucle while.
Dans Kivy vous utilisez des rappels avec l'Horloge.schedule_intervall(callback, time_in_sec) (voir http://kivy.org/docs/api-kivy.clock.html) pour la mise à jour/le dessin de l'écran.
Utiliser le framebuffer pour le dessin
Pour le dessin, vous devez utiliser un framebuffer qui est ajouté à la toile. voir http://kivy.org/docs/api-kivy.graphics.fbo.html
La courbe est tracée de gauche à droite, point par point.
Avec redessiner je veux dire que je dessine la première courbe (je suis en utilisant un calcul de l'onde sinusoïdale) sur le framebuffer et après j'ai atteint le bord droit de l'écran, je commence à dessiner à partir de la gauche à nouveau avec la nouvelle courbe.
Et maintenant, il y a toujours dessiné précédemment courbe qui doit être nettoyé. Vous pourrait redessiner la totalité de l'écran ici, mais c'est probablement plus lent que d'enlever l'ancienne ligne point par point.
La difficulté ici est de restaurer la couleur d'arrière-plan qui est en dessous de la courbe de vieux. On dirait que je suis de la couleur de la mauvaise pixel, mais je ne suis pas sûr de ce qui est mauvais.
Get_pixel_color() pour l'actualisation de l'écran
Avec Le Framebuffer.get_pixel_color(wx,wy) (Kivy 1.8.0 nécessaire), vous pouvez obtenir la couleur d'un pixel dans rgba et qui ne fonctionne pas correctement. C'est peut-être une mise à jour de la question, mais je ne suis pas sûr.
De compensation avec un pixel noir (avec sortie get_pixel_color) est un travail, mais qui enlève la grille d'arrière-plan.
OriginalL'auteur AWolf