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:   Test03aTurtleCurved.pde
   JAVA Download:   Test03aTurtleCurved.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     all = new Obj();
Sliders mySliders;
 
void setup(){
    size(800,400,OPENGL);
  Anar.init(this);
 
  // Setup DEFAULT rendering of our scene
  Pts.globalRender = new RenderPtsAll();
  Pt.globalRender = new RenderPtCross(new AColor(255,155,155),1);
  Anar.drawAxis(true);
  RenderSpline.splineRes.set(12);
 
  initForm();
}
 
void initForm(){
 
  // //////////////////////////////////////////
  // //////////////////////////////////////////
  // Initial SHAPE
  all = new Obj();
 
  ArrayList tr = new ArrayList();
  tr.add(new Translate(10,0,0));
  tr.add(new Translate(20,0,0));
  tr.add(new Translate(30,0,0));
  tr.add(new Translate( -10,0,0));
  tr.add(new Translate( -20,0,0));
  tr.add(new Translate( -30,0,0));
 
  tr.add(new Translate(0,10,0));
  tr.add(new Translate(0,20,0));
  tr.add(new Translate(0,30,0));
  tr.add(new Translate(0, -10,0));
  tr.add(new Translate(0, -20,0));
  tr.add(new Translate(0, -30,0));
 
  ArrayList tz = new ArrayList();
  // tz.add(new RotateX(.1f));
  // tz.add(new RotateX(.2f));
  // tz.add(new RotateX(.3f));
  tz.add(new RotateY((float)Math.PI/6));
  tz.add(new RotateY((float)Math.PI/3));
  tz.add(new RotateY((float)Math.PI/2));
 
  tz.add(new RotateZ((float)Math.PI/6));
  tz.add(new RotateZ((float)Math.PI/3));
  tz.add(new RotateZ((float)Math.PI/2));
 
 
  Pts line = new Pts();
  Pt ori = Anar.Pt(0,0,0);
 
  for (int i = 0; i<200; i++){
    PtDER newPt = Anar.Pt(ori);
    newPt.apply((Transform)tr.get(Anar.rndi(tr.size())));
    newPt.apply(new Transform(ori,(Transform)tz.get(Anar.rndi(tz.size()))));
    line.add(newPt);
    ori = newPt;
    // flush();
    // println(Anar.rndi(tz.size()));
  }
 
  CSpline nCs = new CSpline(line,.1f);
  all.add(nCs);
 
  // //////////////////////////////////////////
  // HIRARCHY
 
  Anar.camTarget(all);
 
  mySliders = new Sliders();
 
  for (int i = 0; i<tr.size(); i++)
    mySliders.add((Transform)tr.get(i));
 
  for (int i = 0; i<tz.size(); i++)
    mySliders.add((Transform)tz.get(i));
 
}
 
 
void draw(){
  background(200);
  all.draw();
  mySliders.draw();
}
 
 
 



screenshots