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

De wikilab
(Blanked the page)
 
Ligne 1 : Ligne 1 :
<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>
 

Version actuelle datée du 25 novembre 2019 à 21:32

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