Difference between revisions of "Change Equation of a Graph"

From JSXGraph Wiki
Jump to: navigation, search
Line 49: Line 49:
  
  
== HowTo of this construction ==
+
== HowTo Create this Construction ==
Adding a text input field somewhere on the page
+
 
 +
=== HTML Part ===
 +
'''Adding a text input field somewhere on the page together with a button'''
 +
 
 
<source>
 
<source>
 
<input type="text" id="eingabe" value="Math.sin(x)*Math.cos(x)">
 
<input type="text" id="eingabe" value="Math.sin(x)*Math.cos(x)">
 +
<input type="button" value="set" onClick="doIt()">
 
</source>
 
</source>
 +
 +
=== JavaScript Part ===
 
'''Setting up the board'''
 
'''Setting up the board'''
 
<source>
 
<source>
Line 60: Line 66:
 
   b1axisx = board.createElement('axis', [[1,0], [0,0]], {});
 
   b1axisx = board.createElement('axis', [[1,0], [0,0]], {});
 
   b1axisy = board.createElement('axis', [[0,1], [0,0]], {});
 
   b1axisy = board.createElement('axis', [[0,1], [0,0]], {});
 +
</source>
 +
 +
'''Create a JavaScript Function f(x) From the Text Field'''
 +
 +
<source>
 +
eval("function f(x){ return "+document.getElementById("eingabe").value+";}");
 +
</source>
 +
 +
'''Use f(x) for defining the Graph'''
 +
 +
<source>
 +
graph = board.createElement('curve', [function(x){ return x; }, function(x){ return f(x); }, "x", -10, 10]);
 +
</source>
 +
 +
'''Define Further Elements'''
 +
 +
<source>
 +
//glider on the curve
 +
p1 = board.createElement('glider', [graph], {style:6, name:'P'});
 +
 +
//define the derivative of f
 +
g = board.algebra.D(f);
 +
p2 = board.createElement('point', [function() { return p1.X()+1;}, function() {return p1.Y()+board.algebra.D(graph.Y)(p1.X());}], {style:1, name:''}); // apoint on the tangent
 +
l1 = board.createElement('line', [p1,p2],{}); // the tangent
 +
p3 = board.createElement('point', [function() { return p2.X();}, function() {return p1.Y();}],{style:1, name:''});
 +
pol = board.createElement('polygon', [p1,p2,p3], {});
 +
t = board.createElement('text', [function(){return p1.X()+1.1;},function(){return p1.Y()+(p2.Y()-p3.Y())/2;},function(){ return "m="+(board.round(p2.Y()-p3.Y(),2));}]);
 
</source>
 
</source>

Revision as of 10:59, 15 September 2008

This example shows how you can change the equation of a graph without creating the whole construction again.



HowTo Create this Construction

HTML Part

Adding a text input field somewhere on the page together with a button

<input type="text" id="eingabe" value="Math.sin(x)*Math.cos(x)">
<input type="button" value="set" onClick="doIt()">

JavaScript Part

Setting up the board

  board = JXG.JSXGraph.initBoard('jxgbox', {originX: 250, originY: 250, unitX: 40, unitY: 20});
  // Axes
  b1axisx = board.createElement('axis', [[1,0], [0,0]], {});
  b1axisy = board.createElement('axis', [[0,1], [0,0]], {});

Create a JavaScript Function f(x) From the Text Field

eval("function f(x){ return "+document.getElementById("eingabe").value+";}");

Use f(x) for defining the Graph

graph = board.createElement('curve', [function(x){ return x; }, function(x){ return f(x); }, "x", -10, 10]);

Define Further Elements

//glider on the curve
p1 = board.createElement('glider', [graph], {style:6, name:'P'});

//define the derivative of f
g = board.algebra.D(f);
p2 = board.createElement('point', [function() { return p1.X()+1;}, function() {return p1.Y()+board.algebra.D(graph.Y)(p1.X());}], {style:1, name:''}); // apoint on the tangent
l1 = board.createElement('line', [p1,p2],{}); // the tangent
p3 = board.createElement('point', [function() { return p2.X();}, function() {return p1.Y();}],{style:1, name:''});
pol = board.createElement('polygon', [p1,p2,p3], {});
t = board.createElement('text', [function(){return p1.X()+1.1;},function(){return p1.Y()+(p2.Y()-p3.Y())/2;},function(){ return "m="+(board.round(p2.Y()-p3.Y(),2));}]);