답변:
포물선을 사용하여 사인 함수의 값에 근접 할 수 있습니다. 이것은 정확히 -pi / 2 및 pi / 2에 근본을 갖는 이점이 있는데, 이는 일반적으로 TaylorSeries 또는 MaclaurinSeries 기반의 다른 빠른 근사치에는 해당되지 않습니다 .
public float Sin(float x)
{
const float B = 4 / PI;
const float C = -4 / (PI*PI);
return -(B * x + C * x * ((x < 0) ? -x : x));
}
다음은 실제 사인 함수와의 비교입니다.
sin () 함수 에 대한 입력 값 범위는 무엇입니까 ? 당신이 그것을 사용하는 것에 대해, 그것들이 제한되어있는 것처럼 들리 므로 값을 미리 계산할 수 있습니다 . 예를 들어, 입력 값을 가장 가까운 자리로 반올림하는 경우 가능한 값은 360 개뿐입니다. 사전 계산하고 테이블에 저장하면됩니다.
소수점 이하 자릿수와 같이 약간 더 많은 값이 필요한 경우 테이블에서 보간 할 수 있습니다. 펄린 노이즈에 익숙하지 않지만 "노이즈"라는 단어는 높은 정확도가 필요하지 않은 것으로 보입니다. :) (또한 더 큰 테이블을 만들 수 있으며 3600 개의 항목은 공간이 많지 않습니다).
당신 도 이것을 읽고 싶을 수도 있습니다, 그것은 사인과 코사인 근사치가 빠릅니다.