2012-06-18 2 views
0

나는 최소 12 명의 직책을 가지고 있습니다. 최소값과 최대 값은 0과 1입니다. 그러므로 만약 내가 12 개 위치 (즉, 각 위치에 대해 하나의 값)를 가로 질러 사인파를 그리려면 0.5, 0.66, 0.83, 1, 0.83과 같은 값 목록을 가지게됩니다. 0.66, 0.5, 0.33이다. 0, 0.16, 0.33, 0.5주어진 위치 수만큼의 사인파 값을 자동으로 계산하려면 어떻게합니까?

그러나 내가 poisitons의 수를 24, 48, 96 등으로 늘리고 싶다면 어떻게해야합니까? 손으로) ?

내 사인파는 반복되는 사인파가 아니며 위의 목록에 의해 구성된 단일 숫자가 아닙니다.

답변

1

사인파 방정식은 y = sin x ("단위"사인파의 경우)입니다.

x 축을 표시하려는 위치 수로 나눈 다음 x 값을 표시하면됩니다.

xmax가 1이므로 다음을 사용하십시오. 참고 : 사인파는 x 축에서 1로 끝나지 않으므로이 값에 바인딩해야한다고 가정합니다. x 축은 확장 할 수 있도록 1.0 = 2 * 파이 다음

double xStep = 1.0/NumberOfPositions; 

을 수행한다 :

for(double x = 0.0; x < 1.0; x += xStep) 
{ 
    double yValue = Math.Sin(x*2*Math.PI); // Since you want 2*PI to be at 1 
} 

OR :

double xStep = 1.0/NumberOfPositions; 
double[] yValues = new double[NumberOfPositions+1]; 
double[] xValues = new double[NumberOfPositions+1]; 
for (int i = 0; i < NumberOfPositions+1; i++) 
{ 
    xValues[i] = i * xStep; 
    yValues[i] = Math.Sin(xValues[i]*2*Math.PI); // Since you want 2*PI to be @ 1 
} 
,536,913을
관련 문제