2014-07-24 16 views
1

간단한 눈 시뮬레이션을 만드는 중입니다. 그러나 나는 수학에 몹시 실패하고 있습니다. 기본적으로 눈송이가 초기화되면 x 위치가 svg 캔버스의 임의의 위치에 임의로 설정됩니다. 그런 다음 거기에서 똑바로 내립니다. 이어야합니다 (x 좌표는 사인파처럼 움직여야 함).JavaScript를 사용하여 사인파를 그리기

나는 작년부터 trig을하지 않았으므로 약간 녹슬 었습니다. Math.sin()은 내가 믿는 라디안을 취합니다. 따라서 180을 곱한 다음 파이로 나누어 도수로 변환합니까?

x가 눈송이의 현재 x 위치이고 너비가 캔버스의 너비라고 가정합니다.

x += (Math.sin(((x/width)*(180/Math.PI)))*width) 

일종의 작품이지만 모든 곳에서 볼 수 있습니다. 나는 내가하고있는 일에 대해 모호한 생각을 가지고 있지만, 내 두뇌의 수학을 코드로 푸는 것은 불가능합니다.

Here's a JSFiddle:

내가 잘못 뭐하는 거지?

답변

3

그것은해야한다 :

A 진폭이다
x += A*Math.sin(F*(y/Height)*2*Math.PI); 

, 즉 당신이 플레이크가 좌우로 이동하는 방법을 많은 화소 (총 이동은 2가됩니다 참고 * A). F는 빈도 또는 얼마나 자주 찌꺼기가 왼쪽과 오른쪽으로 이동할 것인지 (각 찌꺼기마다 2와 10 사이에서 무작위로 설정합니다).

관련 문제