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:   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();
}
 
 
 



screenshots