import turtle3d.*; TurtleP3D t = new TurtleP3D(this); // variable to rotate drawing around the y axis float rotx = 0; float roty = 0; void setup() { size(400, 300, P3D); // we only need to run the turtle once so for now do it here hilbert(10,4); } void draw(){ background(255); // The turtle colour is set here. Turtle3D has no colour method yet stroke(70); noFill(); rect(1,1,width-2, height-2); translate(width/2.0, (height/2.0), -100); // rotate around the y axis rotateX(rotx); rotateY(roty); // draws lines from points in a buffer, no arguments yet. smooth(); t.render(); } void mouseDragged() { float rate = 0.01; rotx += (pmouseY-mouseY) * rate; roty += (mouseX-pmouseX) * rate; } void hilbert (float hSize, int hLevel){ if (hLevel > 0) { int newhLevel = hLevel - 1; float newhSize = hSize+2; t.pitch(-90); t.roll(-90); hilbert(newhSize, newhLevel); t.forward(hSize); t.pitch(-90); t.roll(-90); hilbert(newhSize, newhLevel); t.forward(hSize); hilbert(newhSize, newhLevel); t.yaw(-90); t.forward(hSize); t.pitch(-90); t.roll(90); t.roll(90); hilbert(newhSize, newhLevel); t.forward(hSize); hilbert(newhSize, newhLevel); t.pitch(90); t.forward(hSize); t.yaw(90); t.roll(90); t.roll(90); hilbert(newhSize, newhLevel); t.forward(hSize); hilbert(newhSize, newhLevel); t.yaw(-90); t.forward(hSize); t.roll(90); hilbert(newhSize, newhLevel); t.yaw(-90); t.roll(90); } }