class Tracer{ Vec3 [] vector; boolean first = true; Tracer(){ vector = new Vec3[1]; vector[0] = new Vec3(); } void trace(Vec3 add){ int num; if (first){ vector[0] = add; first = false; } else{ vector = addVector(vector, add); } } void draw(){ stroke(0,0,0,155); for(int i = 0; i < vector.length; i++){ pushMatrix(); translate(-w+vector[i].x*width,-h+vector[i].y*height,vector[i].z*height); fill(0,0,0,100); ellipse(0,0,20,20); fill(0); text(i,0,0); popMatrix(); } fill(0,0,0,20); beginShape(POLYGON); for(int i = 0; i < vector.length; i++){ vertex(-w+vector[i].x*width,-h+vector[i].y*height,vector[i].z*height); } endShape(); } double [] xVectors(){ double [] x = new double[vector.length]; for(int i = 0; i < vector.length; i++) x[i] = (double)(vector[i].x); return x; } double [] yVectors(){ double [] y = new double[vector.length]; for(int i = 0; i < vector.length; i++) y[i] = (double)(vector[i].y); return y; } double [] zVectors(){ double [] z = new double[vector.length]; for(int i = 0; i < vector.length; i++) z[i] = (double)(vector[i].z); return z; } }