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:   Test00xGSweepAlongPathDarboux.pde
   JAVA Download:   Test00xGSweepAlongPathDarboux.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   obj;
 
Param angle;
 
float sizeFrenet = 10f;
 
void setup(){
    size(1000,500,OPENGL);
  Anar.init(this);
 
  initForm();
}
 
 
void initForm(){
 
  obj = new Obj();
 
  // /////////////////////////////
  Pts ptsA = new Pts();
  Pt origin;
  ptsA.add(origin = Anar.Pt(0,0,0,"Origin"));
 
  // /////////////////////////////
  Transform t = new Transform();
  angle = new Param(PI/14f,0,PI/4);
  Anar.sliders(angle);
  t.rotateZ(angle);
  t.translate(Anar.PtNull(5,0,1));
 
  // /////////////////////////////
  Pt previous = origin;
 
  for (int i = 0; i<100; i++){
    Pt newPt = Anar.Pt(previous);
    newPt.apply(t);
    ptsA.add(newPt);
    previous = newPt;
  }
 
  // Spiral created
  // /////////////////////////////
  // /////////////////////////////
  obj.add(ptsA);
 
  Pts ptsB = new Pts();
 
  Param sizeF = new Param(sizeFrenet, 0,2*sizeFrenet);
 
  Anar.sliders(sizeF);
  // /////////////////////////////
 
  for (int i = 1; i<ptsA.numOfPts()-2; i++){
      Pt p0 = ptsA.pt(i-1);
      Pt p1 = ptsA.pt(i);
      Pt p2 = ptsA.pt(i+1);
      Pt p3 = ptsA.pt(i+2);
 
      PtDarboux omega = new PtDarboux(p0,p1,p2,p3,sizeF);
 
      ptsB.add(omega);        
  }
 
  // synchronize pts
  ptsA.remove(0);
 
  obj = new SweepTwoPaths(ptsA,ptsB);
  obj.add(ptsA);
  obj.add(ptsB);
  TextIO.write("test.lsp",obj.toAutocad());
  Anar.camTarget(obj);
 
}
 
 
 
 
void draw(){
  background(255);
  obj.draw();
}
 
 
 



screenshots