
PDE Download: Test04zTurtleMulti.pde
JAVA Download: Test04zTurtleMulti.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
boolean penDown = true;
boolean cameraFollow = false;
// Obj traces = new Obj();
Turtle[] turtle;
Param f;
Param XY;
Param XZ;
void setup(){
size(screen.width,screen.height-100,OPENGL);
Anar.chy(this);
Anar.drawAxis(true);
ParamCycle.clock = new ClockFCms();
f = new ParamCycle(1/4f,5/2f,1/4f,new Param(20,0,200));
XY = new ParamCycle(0.01f, -.1f,.1f,new Param(70,0,200));
XZ = new ParamCycle(0.01f, -.1f,.1f,new Param(100,0,200));
Anar.sliders.add(f);
Anar.sliders.add(XY);
Anar.sliders.add(XZ);
turtle = new Turtle[10];
int n = turtle.length;
int d = 20;
for (int i = 0; i<turtle.length; i++){
turtle[i] = new Turtle(Anar.Pt(d*sin(2*PI*i/n),d*cos(2*PI*i/n),0),Anar.Pt(0,0,1),Anar.Pt(sin(2*PI*i/n),cos(2*PI*i/n),0));
// Pts t = new Pts();
// traces.add(t);
}
}
void draw(){
background(200);
Anar.draw();
// traces.draw();
for (int i = 0; i<turtle.length; i++){
turtle[i].ROTATEXZ(XZ);
turtle[i].ROTATEXY(XY);
turtle[i].FORWARD(f);
turtle[i].draw();
}
if(cameraFollow)
turtle[0].setCameraOnTurtle();
}
void keyPressed(){
if(key==' ')
for (int i = 0; i<turtle.length; i++)
if(turtle[i].penState)
turtle[i].PENUP();
else
turtle[i].PENDOWN();
if(key=='q')
cameraFollow = cameraFollow ? false:true;
if(key=='c')
for (int i = 0; i<turtle.length; i++)
turtle[i].CLEAN();
if(key=='t')
for (int i = 0; i<turtle.length; i++)
turtle[i].drawingFromTail();
if(key=='h')
for (int i = 0; i<turtle.length; i++)
turtle[i].drawingFromHead();
}

|