Real-time graphing: Difference between revisions

From JSXGraph Wiki
No edit summary
No edit summary
Line 9: Line 9:
<jsxgraph width="700" height="400">
<jsxgraph width="700" height="400">
var brd, g,  
var brd, g,  
     x = [], y = [];
     x = [], y = [],
    turt,i;


brd = JXG.JSXGraph.initBoard('jxgbox', {axis:true, boundingbox:[0,20,30,-2]});
brd = JXG.JSXGraph.initBoard('jxgbox', {axis:true, boundingbox:[0,20,30,-2]});
turt = brd.createElement('turtle',[],{strockecolor:'#999999'});
turt.hide().right(90);
for (i=5;i<=15;i+=5) {
    turt.moveTo(0,i).forward(30);
}


fetchData = function() {
fetchData = function() {
Line 27: Line 35:
                 y.push(a);
                 y.push(a);
                 if (!g) {                  // If the curve does not exist yet, create it.
                 if (!g) {                  // If the curve does not exist yet, create it.
                     g = brd.createElement('curve', [x,y],{strokeWidth:3, strokeColor:'green'});  
                     g = brd.createElement('curve', [x,y],{strokeWidth:3, strokeColor:'yellow'});  
                 }  
                 }  
                 brd.update();
                 brd.update();

Revision as of 08:21, 18 December 2009

The underlying JavaScript code

var brd, g, 
    x = [], y = [];

brd = JXG.JSXGraph.initBoard('jxgbox', {axis:true, boundingbox:[0,20,30,-2]});

fetchData = function() {
    new Ajax.Request('/ajax/fakesensor.php', {
        onComplete: function(transport) {
            var t, a;
            if (200 == transport.status) {
                t = transport.responseText;
                a = parseFloat(t);
                if (x.length<30) {
                    x.push(x.length);
                } else {
                    y.splice(0,1);
                }
                y.push(a);
                if (!g) {                   // If the curve does not exist yet, create it.
                    g = brd.createElement('curve', [x,y],{strokeWidth:3, strokeColor:'green'}); 
                } 
                brd.update();
            };
    }});
};

Start = function() {
    periodical = setInterval(fetchData,500);  // Start the periodical update
};

Start();

The PHP code of fakesensor.php

<?php
   echo mt_rand(0,20);
?>