import processing.opengl.*; import processing.opengl.*; import anar.*; // import geometry.Point3D; import java.util.*; /* * Example for Anar library by Guillaume LaBelle + Julien Nembrini * http://anar.ch */ Obj myObject; Pts ptsA; Pts ptsB; Pt origin; void setup(){ // size(screen.width,screen.height,OPENGL); size(1000,500,OPENGL); Anar.init(this); myObject = generatorBirdNest00(); } Obj generatorBirdNest00(){ Obj outputFmz; ptsA = new Pts(); ptsB = new Pts(); ptsA.add(origin = Anar.Pt(5, -5, -50,"Origine")); println(origin); ArrayList spiral = new ArrayList(); Transform tmp; // Transform 1 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/16f); spiral.add(tmp); // Transform 2 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/12f); spiral.add(tmp); // Transform 3 tmp = new Transform(); tmp.translate(10,1,1); tmp.rotateZ(PI/8f); spiral.add(tmp); tmp = new Transform(); tmp.translate( -10,1,1); tmp.rotateZ( -PI/16f); spiral.add(tmp); // println(spiralTransform); Pt previous = origin; for (int i = 0; i<1000; i++){ // Pt q = Anar.Pt(previous,spiralA); // Pt q = Anar.Pt(previous,spiralTransform); if(random(10)<4) tmp = (Transform)spiral.get((int)random(spiral.size())); Transform ori = new Transform(previous,tmp); Pt q = Anar.Pt(previous,ori); ptsA.add(q); previous = q; } // ArrayList base = new ArrayList(); Transform baseTransform; 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 i = ptsA.iterator(); while (i.hasNext()){ PtDER p = Anar.Pt((Pt)i.next()); // p.set(base.get((int)random(base.size()))); p.apply(baseTransform); ptsB.add(p); } outputFmz = new SweepTwoPaths(ptsA,ptsB); println(outputFmz); println(outputFmz.faces.size()); println(outputFmz.faces.get(0)); ptsA.color(new AColor(252,0,0)); // println(outputFmz.primitiveToString(-1)); println("-------------"); // TextIO.writeTextFile("test.lsp",outputFmz.toAutocad()); return outputFmz; } void draw(){ if(frameCount%2==0) background(150); else background(148); origin.draw(); ptsA.draw(); ptsB.draw(); myObject.draw(); if(frameCount%500==0) myObject = generatorBirdNest00(); }