This browser does not have a Java Plug-in.
Get the latest Java Plug-in here.

anar+

by   LaBelle + Nembrini
©2008

built with ( )
   examples index
Rotate: middle click or key[1]
Zoom in|out: wheel button or key[2]
AutoRotate: key[5]
(First Click inside the applet to enable keys)

This applet use OpenGL, you might have to install extra jogl libraries once to view this applet. You may have a look at image capture and video at the bottom of this page. You might accept security security permenently to remove the security prompts on each pages.



sourcecode


   PDE Download:   Test03xPatternsExplorer.pde
   JAVA Download:   Test03xPatternsExplorer.java


Click on anar+ terms to get the documentation.

import processing.opengl.*;
import anar.*;
 
 
 
 
// TODO: (1) Create this example of all possible patterns in teh world
 
 
/*
 * Example for Anar library by Guillaume LaBelle + Julien Nembrini
 * http://anar.ch
 */
 
 
 
Obj   myObj;
Param w = new Param(10,0,50);
 
void setup(){
    size(800,400,OPENGL);
  Anar.init(this);
  Anar.drawAxis();
 
  initForm();
}
 
void initForm(){
  myObj = new Obj();
 
  Anar.slidersReset();
  Anar.sliders(w);
 
 
  Obj module = createModule();
 
  Translate decal = new Translate(w,w);
 
  Obj pattern = module;
 
  for (int i = 0; i<4; i++){
    pattern = flipOnX(pattern);
    pattern = flipOnY(pattern);
 
    for (int j = 0; j< (i+1)*2+i; j++)
      pattern.apply(decal);
 
  }
 
 
  myObj.add(pattern);
  myObj.fill(255,random(255),random(255),random(150)+55);
  Anar.camTarget(myObj);
}
 
 
Obj createModule(){
  Obj module = new Obj();
  Face square = new Rect(w,w);
 
  for (int i = 0; i<square.numOfPts(); i++){
    Param radius = new Param(random(5)+5,5,10);
    Anar.sliders(radius);
 
    Face circ = new Rect(square.pt(i),radius,radius);
    module.add(circ);
  }
 
  return module;
}
 
 
Obj flipOnX(Obj moduleA){
 
  Obj moduleB = new Obj(moduleA);
  moduleB.apply(new TranslateX(w));
  moduleB.apply(new MirrorX());
 
  Obj subPatch = new Obj();
  subPatch.add(moduleA);
  subPatch.add(moduleB);
 
  return subPatch;
}
 
Obj flipOnY(Obj moduleA){
 
  Obj moduleB = new Obj(moduleA);
  moduleB.apply(new TranslateY(w));
  moduleB.apply(new MirrorY());
 
  Obj subPatch = new Obj();
  subPatch.add(moduleA);
  subPatch.add(moduleB);
 
  return subPatch;
}
 
 
void draw(){
  background(155);
  myObj.draw();
}
 
void keyPressed(){
  if(key==' ')
    initForm();
}
 
 



screenshots