Différences entre versions de « Catégorie:Communauté »

De wikilab
Ligne 1 : Ligne 1 :
<processingjs> <processingjs>
+
<processingjs> // All Examples Written by Casey Reas and Ben Fry
  
void setup(){
+
// unless otherwise stated.
  
size( 200, 200 );
+
// center point
strokeWeight( 10 );
 
  
} void draw(){
+
float centerX = 0, centerY = 0;
  
  background(0);
+
 
  ellipse( mouseX, mouseY, 100, 100 );        
+
float radius = 45, rotAngle = -90;
 +
 
 +
float accelX, accelY;
 +
 
 +
float springing = .0085, damping = .98;
 +
 
 +
 
 +
//corner nodes
 +
 
 +
int nodes = 5;
 +
 
 +
float nodeStartX[] = new float[nodes];
 +
 
 +
float nodeStartY[] = new float[nodes];
 +
 
 +
float[]nodeX = new float[nodes];
 +
 
 +
float[]nodeY = new float[nodes];
 +
 
 +
float[]angle = new float[nodes];
 +
 
 +
float[]frequency = new float[nodes];
 +
 
 +
 
 +
// soft-body dynamics
 +
 
 +
float organicConstant = 1;
 +
 
 +
 
 +
void setup() {
 +
 
 +
size(800, 600);
 +
 
 +
//center shape in window
 +
 
 +
centerX = width/2;
 +
 
 +
centerY = height/2;
 +
 
 +
// iniitalize frequencies for corner nodes
 +
 
 +
for (int i=0; i<nodes; i++){
 +
 
 +
  frequency[i] = random(5, 12);
 +
 
 +
  }
 +
 
 +
noStroke();
 +
 
 +
smooth();
 +
 
 +
frameRate(30);
 +
 
 +
}
 +
 
 +
 
 +
void draw() {
 +
 
 +
//fade background
 +
 
 +
fill(0, 100);
 +
 
 +
  rect(0,0,width, height);
 +
 
 +
drawShape();
 +
 
 +
moveShape();
 +
 
 +
}
 +
 
 +
 
 +
void drawShape() {
 +
 
 +
//  calculate node  starting locations
 +
 
 +
for (int i=0; i<nodes; i++){
 +
 
 +
  nodeStartX[i] = centerX+cos(radians(rotAngle))*radius;
 +
 
 +
  nodeStartY[i] = centerY+sin(radians(rotAngle))*radius;
 +
 
 +
  rotAngle += 360.0/nodes;
 +
 
 +
}
 +
 
 +
 
 +
// draw polygon
 +
 
 +
curveTightness(organicConstant);
 +
 
 +
fill(255);
 +
 
 +
beginShape();
 +
 
 +
for (int i=0; i<nodes; i++){
 +
 
 +
  curveVertex(nodeX[i], nodeY[i]);
 +
 
 +
}
 +
 
 +
for (int i=0; i<nodes-1; i++){
 +
 
 +
  curveVertex(nodeX[i], nodeY[i]);
 +
 
 +
}
 +
 
 +
endShape(CLOSE);
 +
 
 +
}
 +
 
 +
 
 +
void moveShape() {
 +
 
 +
//move center point
 +
 
 +
float deltaX = mouseX-centerX;
 +
 
 +
float deltaY = mouseY-centerY;
 +
 
 +
 
 +
// create springing effect
 +
 
 +
deltaX *= springing;
 +
 
 +
deltaY *= springing;
 +
 
 +
accelX += deltaX;
 +
 
 +
accelY += deltaY;
 +
 
 +
 
 +
// move predator's center
 +
 
 +
centerX += accelX;
 +
 
 +
centerY += accelY;
 +
 
 +
 
 +
// slow down springing
 +
 
 +
accelX *= damping;
 +
 
 +
accelY *= damping;
 +
 
 +
 
 +
// change curve tightness
 +
 
 +
organicConstant = 1-((abs(accelX)+abs(accelY))*.1);
 +
 
 +
 
 +
//move nodes
 +
 
 +
for (int i=0; i<nodes; i++){
 +
 
 +
  nodeX[i] = nodeStartX[i]+sin(radians(angle[i]))*(accelX*2);
 +
 
 +
  nodeY[i] = nodeStartY[i]+sin(radians(angle[i]))*(accelY*2);
 +
 
 +
  angle[i]+=frequency[i];
 +
 
 +
}
  
 
}
 
}
  
 
</processingjs>
 
</processingjs>

Version du 25 novembre 2019 à 21:32

<processingjs> // All Examples Written by Casey Reas and Ben Fry

// unless otherwise stated.

// center point

float centerX = 0, centerY = 0;


float radius = 45, rotAngle = -90;

float accelX, accelY;

float springing = .0085, damping = .98;


//corner nodes

int nodes = 5;

float nodeStartX[] = new float[nodes];

float nodeStartY[] = new float[nodes];

float[]nodeX = new float[nodes];

float[]nodeY = new float[nodes];

float[]angle = new float[nodes];

float[]frequency = new float[nodes];


// soft-body dynamics

float organicConstant = 1;


void setup() {

size(800, 600);
//center shape in window
centerX = width/2;
centerY = height/2;
// iniitalize frequencies for corner nodes
for (int i=0; i<nodes; i++){
  frequency[i] = random(5, 12);
}
noStroke();
smooth();
frameRate(30);

}


void draw() {

//fade background
fill(0, 100);
rect(0,0,width, height);
drawShape();
moveShape();

}


void drawShape() {

//  calculate node  starting locations
for (int i=0; i<nodes; i++){
  nodeStartX[i] = centerX+cos(radians(rotAngle))*radius;
  nodeStartY[i] = centerY+sin(radians(rotAngle))*radius;
  rotAngle += 360.0/nodes;
}


// draw polygon
curveTightness(organicConstant);
fill(255);
beginShape();
for (int i=0; i<nodes; i++){
  curveVertex(nodeX[i], nodeY[i]);
}
for (int i=0; i<nodes-1; i++){
  curveVertex(nodeX[i], nodeY[i]);
}
endShape(CLOSE);

}


void moveShape() {

//move center point
float deltaX = mouseX-centerX;
float deltaY = mouseY-centerY;


// create springing effect
deltaX *= springing;
deltaY *= springing;
accelX += deltaX;
accelY += deltaY;


// move predator's center
centerX += accelX;
centerY += accelY;


// slow down springing
accelX *= damping;
accelY *= damping;


// change curve tightness
organicConstant = 1-((abs(accelX)+abs(accelY))*.1);


//move nodes
for (int i=0; i<nodes; i++){
  nodeX[i] = nodeStartX[i]+sin(radians(angle[i]))*(accelX*2);
  nodeY[i] = nodeStartY[i]+sin(radians(angle[i]))*(accelY*2);
  angle[i]+=frequency[i];
}

}

</processingjs>

Cette catégorie ne contient actuellement aucune page ni fichier multimédia.