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



screenshots