
PDE Download: Test00tSpiral.pde
JAVA Download: Test00tSpiral.java
Click on anar+ terms to get the documentation.
import processing.opengl.*;
import anar.*;
import java.util.ArrayList;
/*
* Example for Anar library by Guillaume LaBelle + Julien Nembrini
* http://anar.ch
*/
Obj myObject;
Pts ptsA = new Pts();
Pts ptsB = new Pts();
Pt origin;
void setup(){
size(800,400,OPENGL);
Anar.init(this);
initForm();
}
void initForm(){
origin = Anar.Pt(0,0,0);
ptsA.add(origin);
ArrayList spiral = new ArrayList();
Transform tmp;
// Transform 1
tmp = new Transform();
tmp.rotateZ(PI/16f);
tmp.translate(Anar.PtNull(10,0,1));
spiral.add(tmp);
// Transform 2
tmp = new Transform();
tmp.rotateZ(PI/12f);
tmp.translate(Anar.PtNull(10,0,1));
spiral.add(tmp);
// Transform 3
tmp = new Transform();
tmp.rotateZ(PI/8f);
tmp.translate(Anar.PtNull(10,0,1));
spiral.add(tmp);
// println(spiralTransform);
Pt previous = origin;
for (int i = 0; i<500; i++){
// Pt q = Anar.Pt(previous,spiralA);
// Pt q = Anar.Pt(previous,spiralTransform);
if(random(10)<1)
tmp = (Transform)spiral.get((int)random(spiral.size()));
Pt q = Anar.Pt(previous,tmp);
ptsA.add(q);
previous = q;
}
Transform baseTransform = new Transform();
baseTransform.translate(Anar.PtNull(0,0, -15));
// base.add(baseTransform);
/*
* baseTransform = new Transform();
* baseTransform.translate(Anar.PtNull(0,0,-5)); base.add(baseTransform);
*/
// Iterator<Pt> i = ptsA.iterator();
for (int i = 0; i<ptsA.numOfPts(); i++){
PtDER p = Anar.Pt(ptsA.pt(i));
p.apply(baseTransform);
ptsB.add(p);
}
myObject = new SweepTwoPaths(ptsA,ptsB);
println(myObject);
println(myObject.faces.size());
println(myObject.faces.get(0));
ptsA.color(new AColor(252,0,0));
ptsA.add(origin = Anar.Pt(5, -5, -50));
Anar.camTarget(myObject);
}
void draw(){
if(frameCount%2==0)
background(155);
else
background(153);
origin.draw();
ptsA.draw();
ptsB.draw();
myObject.draw();
}

|