
PDE Download: Test02jFaceNinjaAutoExplore.pde
JAVA Download: Test02jFaceNinjaAutoExplore.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
// import Goo.*;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
Obj obj; // = new Obj();
void setup(){
size(800,400,OPENGL);
frameRate(200);
Anar.init(this);
initShape();
Pts.globalRender = new RenderPtsAll();
}
void initShape(){
obj = new Obj();
int n1 = Anar.rndi(4,20);
// int n2 = (int)((float)Math.random()*50)+3;
// int n3 = (int)((float)Math.random()*50)+3;
// int n4 = (int)((float)Math.random()*50)+3;
// int n5 = (int)((float)Math.random()*50)+3;
float n2 = (float)Anar.rnd( -width/2f,width/2f);
float n3 = (float)Anar.rnd( -width/2f,width/2f);
Face face = new Face();
Pt origin = Anar.Pt(0,0,0);
float theta = 2*(float)Math.PI/n1;
RotateZ rt = new RotateZ(theta);
// //////////////////////////
Transform tw = new Transform();
tw.translate(Anar.PtNull(Anar.rndi(n2),Anar.rndi(n2),Anar.rndi(n2)));
// //////////////////////////
Transform th = new Transform();
th.add(rt);
th.translate(Anar.PtNull(Anar.rndi(n3),Anar.rndi(n3),Anar.rndi(n3)));
Transform rt2x = new Transform();
rt2x.add(rt);
// rt2x.add(rt);
// //////////////////////////
Pt previousA = Anar.Pt(origin,tw);
Pt previousB = Anar.Pt(origin,th);
Pt previousC = Anar.Pt(origin,th);
previousC.translate(Anar.rnd( -10,100),Anar.rnd( -10,100),Anar.rnd( -10,100));
face.add(previousA);
face.add(previousB);
face.add(previousC);
for (int i = 1; i<n1; i++){
PtDER pA = Anar.Pt(previousA);
PtDER pB = Anar.Pt(previousB);
PtDER pC = Anar.Pt(previousC);
pA.apply(rt2x);
pB.apply(rt2x);
pC.apply(rt2x);
face.add(pA);
face.add(pB);
face.add(pC);
previousA = pA;
previousB = pB;
previousC = pC;
}
obj.add(face);
// prnt(face.parentList());
}
void draw(){
background(190);
obj.draw();
}
void prnt(Object s){
super.println(s);
super.println("-----------------------------");
}
void keyPressed(){
initShape();
}

|