Code Block |
---|
int gridW = 15; int gridH = 15; int xStep = 60; int yStep = 60; PShape[] imageList; void setup() { size(800, 800); smooth(); imageList = new PShape[9]; imageList[0] = loadShape("perm1.svg"); imageList[1] = loadShape("perm2.svg"); imageList[2] = loadShape("perm3.svg"); imageList[3] = loadShape("perm4.svg"); imageList[4] = loadShape("perm5.svg"); imageList[5] = loadShape("perm6.svg"); imageList[6] = loadShape("perm7.svg"); imageList[7] = loadShape("perm8.svg"); imageList[8] = loadShape("perm9.svg"); } void draw() { background(255); int newIndex; for (int i=0; i < gridW; i++) { for (int j=0; j < gridH; j++) { PVector pos = new PVector(i * xStep, j * yStep); newIndex = calcIndex(pos, imageList.length); pushMatrix(); translate(pos.x, pos.y); scale(.5); shape(imageList[newIndex], 0, 0); popMatrix(); } } } int calcIndex(PVector obj, int maxIndex) { float distance = dist(obj.x, obj.y, mouseX, mouseY); return (int)map(distance, 0, dist(0, 0, width, height), 0, maxIndex-1); } |
...
View file | ||||
---|---|---|---|---|
|
Example for leap motion
Code Block |
---|
class VisualD {
int shapeWidth = 60;
int shapeHeight = 60;
int gridWidth;
int gridHeight;
PShape[] imageList;
VisualD() {
gridWidth = width/shapeWidth+1;
gridHeight = height/shapeHeight+1;
imageList = new PShape[9];
imageList[0] = loadShape("perm1.svg");
imageList[1] = loadShape("perm2.svg");
imageList[2] = loadShape("perm3.svg");
imageList[3] = loadShape("perm4.svg");
imageList[4] = loadShape("perm5.svg");
imageList[5] = loadShape("perm6.svg");
imageList[6] = loadShape("perm7.svg");
imageList[7] = loadShape("perm8.svg");
imageList[8] = loadShape("perm9.svg");
}
void draw(PVector _reactorPosition, float _reactorScaler) {
background(255);
int newIndex;
for (int i=0; i < gridWidth; i++)
{
for (int j=0; j < gridHeight; j++)
{
PVector pos = new PVector(i * shapeWidth, j * shapeHeight);
newIndex = calcIndex(pos, imageList.length, _reactorPosition);
pushMatrix();
translate(pos.x, pos.y);
scale(.5);
shape(imageList[newIndex], 0, 0);
popMatrix();
}
}
}
int calcIndex(PVector obj, int maxIndex, PVector _reactorPosition){
float distance = dist(obj.x,obj.y, _reactorPosition.x,_reactorPosition.y);
return (int)map(distance,0,dist(0,0,width,height),0,maxIndex-1);
}
} |