chain.pde

来自「This is processing for java examples.」· PDE 代码 · 共 69 行

PDE
69
字号
/** * Chain.  *  * One mass is attached to the mouse position and the other  * is attached the position of the other mass. The gravity * in the environment pulls down on both.  */Spring2D s1, s2;float gravity = 6.0;float mass = 2.0;void setup() {  size(200, 200);  smooth();  fill(0);  // Inputs: x, y, mass, gravity  s1 = new Spring2D(0.0, width/2, mass, gravity);  s2 = new Spring2D(0.0, width/2, mass, gravity);}void draw() {  background(204);  s1.update(mouseX, mouseY);  s1.display(mouseX, mouseY);  s2.update(s1.x, s1.y);  s2.display(s1.x, s1.y);}class Spring2D {  float vx, vy; // The x- and y-axis velocities  float x, y; // The x- and y-coordinates  float gravity;  float mass;  float radius = 20;  float stiffness = 0.2;  float damping = 0.7;    Spring2D(float xpos, float ypos, float m, float g) {    x = xpos;    y = ypos;    mass = m;    gravity = g;  }    void update(float targetX, float targetY) {    float forceX = (targetX - x) * stiffness;    float ax = forceX / mass;    vx = damping * (vx + ax);    x += vx;    float forceY = (targetY - y) * stiffness;    forceY += gravity;    float ay = forceY / mass;    vy = damping * (vy + ay);    y += vy;  }    void display(float nx, float ny) {    noStroke();    ellipse(x, y, radius*2, radius*2);    stroke(255);    line(x, y, nx, ny);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?