
PDE Download: TestAvi2d00aFirst.pde
JAVA Download: TestAvi2d00aFirst.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
*/
Obj myObject;
Pts line;
void setup(){
// size(screen.width,screen.height, P3D);
size(1000,500,OPENGL);
// size(1000,500, P3D);
background(55,33,6);
myObject = new Obj();
line = new Pts();
Pt o = Anar.PtNull(0,0,0);
Pt a = Anar.PtNull(40,0,40);
Pt b = Anar.PtNull(80,0,0);
// Pt c = Anar.PtNull(80,0,80);
// Pt d = Anar.PtNull(80,100,80);
line.add(o);
line.add(a);
line.add(b);
// line.add(c);
// line.add(d);
// for (int i=0; i<100; i++) {
// line.add(Anar.PtRnd(100,100,100));
// }
myObject.add(line);
Anar.init(this);
Anar.drawAxis(true);
Anar.sliders(a);
Anar.camTarget(myObject);
Pts.globalRender = new RenderPtsAll();
Pt.globalRender = new RenderPtShapeOriented(new AColor(100),new AColor(255,0,0,150),Anar.scene);
}
void draw(){
background(255);
myObject.draw();
}
void subdivide(){
// find midpoints of edges
Pts midPts = new Pts();
for (int i = 0; i<line.numOfPts()-1; i++){
Pts tmp = new Pts(line.pt(i),line.pt(i+1));
midPts.add(new PtBary(tmp));
}
// average old points
Pts newPts = new Pts();
for (int i = 1; i<line.numOfPts()-1; i++){
Pts tmp = new Pts(midPts.pt(i-1),midPts.pt(i));
newPts.add(new PtBary(tmp));
}
// construct new line
Pts newLine = new Pts();
newLine.add(line.pt(0));
for (int i = 0; i<newPts.numOfPts(); i++){
newLine.add(midPts.pt(i));
newLine.add(newPts.pt(i));
}
newLine.add(midPts.ptEnd());
newLine.add(line.ptEnd());
line = newLine;
println(line.numOfPts());
myObject = new Obj();
myObject.add(line);
Anar.slidersReset();
Anar.sliders(line);
}
void keyPressed(){
switch(key){
case 'q':
subdivide();
break;
case ' ':
break;
case 'w':
break;
case 'm':
break;
case 'n':
break;
case 'e':
break;
case 'p':
Scene.autoSeek = false;
break;
case 'o':
break;
case 'r':
break;
case 't':
break;
case 'a':
TextIO.write( ((Object)this).getClass().getName()+".lsp",myObject.toAutocad());
break;
case 'b':
break;
case 'f':
save("linearSubdiv.jpg");
break;
}
}

|