A simple JavaScript clone of the LOGO drawing language. Write turtle programs in JavaScript, saved in your browser.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
forestjohnson 2c53486706 fix issues with exception handler and remove google font 5 anos atrás
vendor Initial commit 9 anos atrás
README.md update readme link 5 anos atrás
TurtleJS.png add screenshot and example to markdown 9 anos atrás
app.css 0.1.0: refactor MDN search popup window feature into a proxified iframe 5 anos atrás
app.js fix issues with exception handler and remove google font 5 anos atrás
helpers.js Initial commit 9 anos atrás
index.html fix issues with exception handler and remove google font 5 anos atrás
mdnSearch.js 0.1.0: refactor MDN search popup window feature into a proxified iframe 5 anos atrás
ui.js fix issues with exception handler and remove google font 5 anos atrás

README.md

TurtleJS

A simple JavaScript clone of the LOGO drawing language. Write turtle programs in JavaScript, saved in your browser.

  • NOTE: this software is a fun toy written in two days. It only supports firefox and chrome right now. It is not supposed to be clean or perfect, mostly I wrote it for fun.

Live Demo

  • Ace code editor.
  • Useful cheat sheet page.
  • Cmd-; to search for selected text on MDN using google JSON search API.
  • Error handling and console.log go to integrated console.

screenshot

Simple API for drawing:

pushColor('red');
forward(50);
right(90);
forward(50);
left(90)
forward(50);
popColor();

Example from screenshot:

var goldenRatio = 1.618;

function square(color, size) {
  pushFillColor(color);
  pushColor('none');
  for(var i = 0; i < 4; i++) {
    forward(size);
    right(90);
  }
  popFillColor();
  popColor();
}

function makeRGBA(r,g,b,a) {
  var rgbaString = 'rgba('
  + Math.round(r > 255 ? 255 : (r < 0 ? 0 : r)) + ','
  + Math.round(g > 255 ? 255 : (g < 0 ? 0 : g)) + ','
  + Math.round(b > 255 ? 255 : (b < 0 ? 0 : b)) + ','
  + (a > 1 ? 1 : (a < 0 ? 0 : a) ) + ')';

  return rgbaString;
}

function fly(x) {
  penUp();
  forward(x);
  penDown();
}

for(var i = 20; i < 130; i++) {
  right(2+(i*goldenRatio));
  fly(i);
  square(
    makeRGBA(i*3, Math.min(i*0.8, 200), 200-(i*2), Math.min(0.5, i * 0.01)),
    (20+i)*Math.random()
  );
  fly(-i);
}

fly(10000);