## Circular Path using Jit.anim.path

Apr 23 2012 | 8:21 am
I was wondering if there was a way to get a circular path for an object to move around. I know you can set the interpmode to spline on the jit.anim.path to get rounded edges but the append messages used to draw are giving me a hard time and I cannot seem to get a circular looking path. Is it possible to get something that looks like jit.gl.sketch with a framecircle 3 0 360 message being sent to it? Thanks.

• May 14 2012 | 3:24 pm
i made something similar (made a helix spline) with javascript and connected the outlet directly to the jit.anim.path inlet... if you set height to zero, you'll get a circle.
autowatch = 1;
inlets = 1;
outlets = 1;
var Point3D = function(x,y,z){
this.x = x;
this.y = y;
this.z = z;
this.toString = function(){
return "Point3D[ x: "+this.x+", y: "+this.y+", z: "+this.z+" ]";
}
return this;
}
var Spline3D = function(Point3DArray){
this.points = Point3DArray;
if(typeof(this.points)=="undefined"){
this.points = new Array();
}
return this;
}
var Helix = function(numPoints, numFrequency, radius, height){
this.Points = new Array();
this.height = height;
this.freqency = numFrequency;
this.arcsize = this.freqency / numPoints;
this.stepsize = this.height / numPoints;
for(var i = 0; i < numPoints; i++){
var x = Math.sin(i*this.arcsize * 2 * Math.PI) * this.radius;
var y = i * this.stepsize;
var z = Math.cos(i*this.arcsize * 2 * Math.PI) * this.radius - 65.;
var tmp = new Point3D(x,y,z);
//post(tmp + "n");
this.Points[i] = tmp ;
}
return this;
}
var numPoints = 123.;
var numFrequency = 1.1;
var height = 50.0;
var time_matrix = new JitterMatrix(1,"float32", numPoints);
var point_matrix = new JitterMatrix(3,"float32", numPoints);
var helix = new Helix(numPoints, numFrequency, radius, height);
function fillMatrix(){
for(i=0;i
post(helix.Points[i] + "n");
x = helix.Points[i].x;
y = helix.Points[i].y;
z = helix.Points[i].z;
time_matrix.setcell1d(i,y*0.05);
// if you want to add some randomness to the vertical axis
//y = y - Math.random() * (height/numPoints) *2. - (height / 2.);
point_matrix.setcell(i,"val",x,y,z);
}
}
function pack(mat1, mat2){
var packer = new JitterObject("jit.pack");
packer.offset = [0,0];
packer.jump = [1,3];
var outmat = new JitterMatrix(4,"float32",numPoints);
packer.matrixcalc([mat1,mat2],outmat);
return outmat;
}
fillMatrix();
bang();
function bang(){
outmat = pack(time_matrix,point_matrix);
outlet(0,"jit_matrix",outmat.name);
outlet(0,"play",1);
outlet(0,"rate",-0.5);
outlet(0,"loop",0);
}
now i want to create the jit.anim.path object dynamicly in javascript, but i don't know how to assign the input matrix to the path object., any suggestions? jit.anim.path.matrixcalc does not work...