picxenk / SIA2019NoC

서울예대 디지털아트과 전공실습 : Nature of Code
1 stars 0 forks source link

저번에 여쭤봤던 spiral 질문입니다..! #4

Open ddong777 opened 5 years ago

ddong777 commented 5 years ago

applyforce, setMag, rotate가 어떻게 작용하는지는 이해하게 됐습니다..! 그런데 mag값과 rotate값을 변화없이 동일하게 설정해놓아도 다른 나선모양을 보일때가 있는데요 acc값이 계속 vel값에 더해져서 그러는 거라면 꼬임?이 점점 적어지는 방향으로 가야할텐데 벽에 튕길때마다 값이 변하는 건지 어쩔땐 많이 꼬이고 어쩔땐 덜 꼬입니다. 왜 그런걸까요..?

image

코드도 첨부합니다..!

let w;

function setup() {
  createCanvas(500, 800);
  w = new Walker();
  background(220);
}

function draw() {
  w.update();
  w.edge();
  w.display();
}

function mouseClicked() {
  //save();
}

function Walker() {
  this.pos = createVector(width / 2, height / 2);
  this.vel = createVector(0, 0);
  this.acc = p5.Vector.fromAngle(random(TWO_PI));
  this.setMagValue = 0.1;
  this.rotateValue = 0.1;

  this.update = function() {
    //this.acc = createVector(random(-1, 1), random(-1, 1));
    //this.acc = p5.Vector.fromAngle(random(TWO_PI));
    this.acc.setMag(this.setMagValue);
    this.acc.rotate(this.rotateValue);

    this.vel.add(this.acc);
    this.vel.limit(4);
    this.pos.add(this.vel);
  }

  this.edge = function() {
    if (this.pos.x > width || this.pos.x < 0) this.vel.x *= -1;
    if (this.pos.y > height || this.pos.y < 0) this.vel.y *= -1;
  }

  this.display = function() {
    ellipse(this.pos.x, this.pos.y, 30);
  }
}
picxenk commented 5 years ago

우선 속도가 일정할까? 가속도에 의해서도 바뀌지만, 벽에 튕길 때에도 방향이 바뀌니 속도가 달라지겠지? 한 번에 이해가 잘 안될만한게, 가속도도 일정한게 아니라 rotate로 방향이 계속 바뀌고 있는거니 속도에 영향을 주는 방식이 한 눈에 잘 안보이는거 같기도 하다.

그냥 지금처럼 그래픽으로 그려진거 말고, 이 변화를 더 관찰하기 좋게 만들 수는 없을까? 예를 들면 속도와 가속도의 변화를 그래프로 그려보면 어떨까?