Difference between revisions of "Programming turtle graphics"

From JSXGraph Wiki
Jump to navigationJump to search
 
(21 intermediate revisions by one other user not shown)
Line 1: Line 1:
===List of available commands===
+
==Input==
There is a predefined turtle object ''t''. Therefore, all commands
+
* [[List of available commands]]
start with ''t'', like ''t.fd(100)'';
 
* t.forward(len); or t.fd(len);
 
* t.back(len); or t.bk(len);
 
* t.right(angle); or t.rt(angle); (<math>0\leq angle \leq 360</math>)
 
* t.left(angle); or t.lt(angle);
 
* t.penUp(); or t.pu();
 
* t.penDown(); or t.pd();
 
* t.clearScreen(); or t.cs();
 
* t.clean();
 
* t.setPos(x,y);
 
* t.home();
 
* t.hideTurtle(); or t.ht();
 
* t.showTurtle(); or t.st();
 
* t.setPenSize(size); (size: number)
 
* t.setPenColor(col); (col: colorString, e.g. 'red' or '#ff0000')
 
  
===Input===
 
 
<html>
 
<html>
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
+
<form><textarea id="inputtext" rows=5 cols=35 wrap="off" style="width:600px;">t.fd(100);</textarea><br />
<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/jsxturtle.js"></script>
 
<form><textarea id="input" rows=3 cols=35 wrap="off" style="width:600px;">
 
</textarea>
 
 
<input type="button" value="run" onClick="run()">
 
<input type="button" value="run" onClick="run()">
 +
<input type="button" value="clear" onClick="clearturtle()">
 +
<input type="button" value="clear log" onClick="clearlog()">
 
</form>
 
</form>
 
</html>
 
</html>
===Output===
+
 
<html>
+
==Output==
<div id="box" class="jxgbox" style="width:600px; height:600px;"></div>
+
<jsxgraph box="box" width="600" height="600">
<script language="JavaScript">
+
var brd = JXG.JSXGraph.initBoard('box', {boundingbox: [-300, 300, 300, -300]});
var brd = JXG.JSXGraph.initBoard('box', {originX: 300, originY: 300, unitX: 1, unitY: 1});
+
var t = brd.create('turtle');
var t = new JSXTurtleObj(brd);
 
 
function run() {
 
function run() {
 
   brd.suspendUpdate();
 
   brd.suspendUpdate();
   eval($('input').value);
+
  var code = document.getElementById('inputtext').value;
 +
  if (code=='') { return; }
 +
   eval(code);
 +
  document.getElementById('logwindow').innerHTML += code+'\n';
 +
  //document.getElementById('inputtext').value = '';
 
   brd.unsuspendUpdate();
 
   brd.unsuspendUpdate();
 
}
 
}
</script>
+
function clearturtle() {
 +
  t.cs();
 +
  //document.getElementById('inputtext').value = 't.fd(100);';
 +
}
 +
function clearlog() {
 +
  document.getElementById('logwindow').innerHTML = '';
 +
}
 +
</jsxgraph>
 +
 
 +
==Log window==
 +
<html>
 +
<pre id="logwindow" class="javascript javascript" style="font-family:monospace;"></pre>
 
</html>
 
</html>
===Log window===
+
 
 +
==Source code==
 +
<source lang="html4strict">
 +
<form><textarea id="inputtext" rows=3 cols=35 wrap="off" style="width:600px;">t.fd(100);</textarea><br />
 +
<input type="button" value="run" onClick="run()">
 +
<input type="button" value="clear" onClick="clearturtle()">
 +
<input type="button" value="clear log" onClick="clearlog()">
 +
</form>
 +
<pre id="logwindow" class="javascript javascript" style="font-family:monospace;"></pre>
 +
</source>
 +
 
 
<source lang="javascript">
 
<source lang="javascript">
 +
var brd = JXG.JSXGraph.initBoard('box', {boundingbox: [-300, 300, 300, -300]});
 +
var t = brd.create('turtle');
 +
 +
function run() {
 +
  brd.suspendUpdate();
 +
  var code = document.getElementById('inputtext').value;
 +
  if (code=='') { return; }
 +
  eval(code);
 +
  document.getElementById('logwindow').innerHTML += code+'\n';
 +
  brd.unsuspendUpdate();
 +
}
 +
 +
function clearturtle() {
 +
  t.cs();
 +
  //document.getElementById('inputtext').value = 't.fd(100);';
 +
}
 +
function clearlog() {
 +
  document.getElementById('logwindow').innerHTML = '';
 +
}
 
</source>
 
</source>
 +
 +
* How to "[[Slow the turtle down]]"
 +
 +
[[Category:Examples]]
 +
[[Category:Turtle Graphics]]

Latest revision as of 14:00, 8 June 2011

Input


Output

Log window



Source code

<form><textarea id="inputtext" rows=3 cols=35 wrap="off" style="width:600px;">t.fd(100);</textarea><br />
<input type="button" value="run" onClick="run()">
<input type="button" value="clear" onClick="clearturtle()">
<input type="button" value="clear log" onClick="clearlog()">
</form>
<pre id="logwindow" class="javascript javascript" style="font-family:monospace;"></pre>
var brd = JXG.JSXGraph.initBoard('box', {boundingbox: [-300, 300, 300, -300]});
var t = brd.create('turtle');

function run() {
  brd.suspendUpdate();
  var code = document.getElementById('inputtext').value;
  if (code=='') { return; }
  eval(code);
  document.getElementById('logwindow').innerHTML += code+'\n';
  brd.unsuspendUpdate();
}

function clearturtle() {
  t.cs();
  //document.getElementById('inputtext').value = 't.fd(100);';
}
function clearlog() {
  document.getElementById('logwindow').innerHTML = '';
}