2010-03-08 9 views
20

Je veux utiliser le noyau-tracé pour dessiner le graphique linéaire dynamiquement. les données ne viendront pas à la fois, nous recevrons point par point dynamiquement.traçage en temps réel sur l'iPhone en utilisant l'intrigue de base?

Est-il possible de dessiner le graphique de manière dynamique en utilisant le dessin de tracés de base, point par point, comme lorsque nous recevons le point (x, y)?

S'il vous plaît aidez-moi, Merci.

+0

Hey Brad. Merci pour vos commentaires. Pourriez-vous suggérer un tutoriel plus récent? Merci d'avance. –

+1

Voici un tutoriel mais le code est en anglais: http://www.geckogeek.fr/installer-et-utiliser-coreplot-sur-iphone-ipad.html – Vinzius

+1

Merci beaucoup, c'est encore plus simple comme ça :) –

Répondre

18

Oui, vous pouvez le faire raisonnablement facilement. Pour chaque point de données reçu, ajoutez-le à un tableau de valeurs à afficher. Lorsque ces points de données entrent, appelez le -reloadData sur le graphe du traceur de base (ou juste le tracé particulier) pour redessiner le graphe, en passant dans le tableau auquel vous venez d'ajouter une valeur en réponse à la méthode déléguée -numbersForPlot:field:recordIndexRange:.

Si vous devez ajuster la plage de tracé pour suivre vos points de données (pour un ticker mobile), recalculez le nouveau CPPlotRange pour l'axe X et définissez la propriété xRange de l'espace de tracé sur cette valeur.

Utilisez les exemples CPTestApp-iPhone, AAPLot ou StockPlot comme modèles pour configurer globalement le graphique linéaire et modifiez-le à partir de ce point de départ.

je fais quelque chose de semblable à cela sur le Mac dans une application scientifique: alt text http://www.sunsetlakesoftware.com/sites/default/files/SensingInAirAgain.jpg

+0

Merci Brad. Je voudrais vous demander une aide supplémentaire à ce sujet. Comment implémenter ZoomIn et ZoomOut pour Core-plot? Ce serait bien si vous fournissez un exemple. S'il vous plaît aidez-moi. – Appbrain

+0

@ ram007: Il n'y a pas de support natif pour le zoom pinch pour le moment. Vous pouvez placer le graphique dans un UIScrollView, puis redimensionner les étendues de graphique en réponse aux modifications de l'échelle de zoom de la vue de défilement, mais cela permet également de zoomer sur les axes pendant un événement de pincement. Malheureusement, le meilleur moyen serait d'ajouter cette capacité au framework en modifiant CPResponder pour gérer les gestes multitouch, et cela prendrait du travail. –

+0

@BradLarson Comment faites-vous un graphique en direct si vous ne savez pas que min et max d'être avec? Comment le graphique crée-t-il l'échelle? –

8

On dirait que vous pourriez faire usage d'un projet de démo que j'ai mis en place et j'ai écrit à propos de here (mais pas de scénario de base).

Il dessine un EKG graphique mais devrait facilement être modifié pour utiliser une autre entrée que le « battement de coeur » répété ... Voir la ligne 320 EAGLView.m où le InData est entré dans le tableau.

+0

Magnifique. Merci –