Simple function plotter: Difference between revisions
From JSXGraph Wiki
| A WASSERMANN (talk | contribs) No edit summary | A WASSERMANN (talk | contribs) No edit summary | ||
| Line 4: | Line 4: | ||
| <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/prototype.js"></script> | <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/prototype.js"></script> | ||
| <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script> | <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script> | ||
| <form><textarea id="input" rows= | <form><textarea id="input" rows=7 cols=35 wrap="off" > | ||
| function f(x) { | function f(x) { | ||
|     return Math.cos(x)*p.Y(); |     return Math.cos(x)*p.Y(); | ||
| Line 55: | Line 55: | ||
| </script> | </script> | ||
| </html> | </html> | ||
| <source lang="html"> | |||
| <form><textarea id="input" rows=7 cols=35 wrap="off" > | |||
| function f(x) { | |||
|    return Math.cos(x)*p.Y(); | |||
| } | |||
| c = plot(f); | |||
| // Derivative: | |||
| g = board.algebra.D(f); | |||
| plot(g,{strokecolor:'black', dash:1}); | |||
| </textarea> <br> | |||
| <input type="button" value="run" onClick="doIt()" style='margin:1em'>  | |||
| <input type="button" value="clear all" onClick="board=clearAll(board)">  | |||
| </source> | |||
| <source lang="javascript"> | <source lang="javascript"> | ||
|         board = JXG.JSXGraph.initBoard('box', {originX: 250, originY: 250, unitX: 40, unitY: 40}); | |||
|         // Axes | |||
|         b1axisx = board.createElement('axis', [[0,0], [1,0]], {}); | |||
|         b1axisy = board.createElement('axis', [[0,0], [0,1]], {}); | |||
|         // Macro function plotter | |||
|         function addCurve(board, func, atts) { | |||
|             var f = board.createElement('curve', ['x', func, 'x'], atts); | |||
|             return f; | |||
|         } | |||
|         // Simplified plotting of function | |||
|         function plot(func, atts) { | |||
|             if (atts==null) { | |||
|                 return addCurve(board, func, {strokewidth:2, curveType:'graph'}); | |||
|             } else { | |||
|                 return addCurve(board, func, atts); | |||
|             }     | |||
|         } | |||
|         // Free point | |||
|         var p = board.createElement('point', [3,-4], {style:6, name:'drag me'});  | |||
|         // Usage of the macro | |||
|         function doIt() { | |||
|             eval($('input').value);  | |||
|         } | |||
|         function clearAll(board) { | |||
|             JXG.JSXGraph.freeBoard(board); | |||
|             board = JXG.JSXGraph.initBoard('jxgbox', {originX: 250, originY: 250, unitX: 40, unitY: 20}); | |||
|             b1axisx = board.createElement('axis', [[0,0], [1,0]], {}); | |||
|             b1axisy = board.createElement('axis', [[0,0], [0,1]], {}); | |||
|             return board; | |||
|         } | |||
| </source> | </source> | ||
| [[Category:Examples]] | [[Category:Examples]] | ||
Revision as of 17:03, 3 December 2008
Plots a function together with its derivative.
<form><textarea id="input" rows=7 cols=35 wrap="off" >
function f(x) {
   return Math.cos(x)*p.Y();
}
c = plot(f);
// Derivative:
g = board.algebra.D(f);
plot(g,{strokecolor:'black', dash:1});
</textarea> <br>
<input type="button" value="run" onClick="doIt()" style='margin:1em'> 
<input type="button" value="clear all" onClick="board=clearAll(board)">
        board = JXG.JSXGraph.initBoard('box', {originX: 250, originY: 250, unitX: 40, unitY: 40});
        // Axes
        b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
        b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
        // Macro function plotter
        function addCurve(board, func, atts) {
            var f = board.createElement('curve', ['x', func, 'x'], atts);
            return f;
        }
        
        // Simplified plotting of function
        function plot(func, atts) {
            if (atts==null) {
                return addCurve(board, func, {strokewidth:2, curveType:'graph'});
            } else {
                return addCurve(board, func, atts);
            }    
        }
        // Free point
        var p = board.createElement('point', [3,-4], {style:6, name:'drag me'}); 
        // Usage of the macro
        function doIt() {
            eval($('input').value); 
        }
        function clearAll(board) {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 250, originY: 250, unitX: 40, unitY: 20});
            b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            return board;
        }
