값이 계속 증가하는 삼각 함수
갑자기입니다만, 위의 그림과 같이 값이 매끄럽게 늘어나는 Sin 함수 갖고 싶다고 생각한 적 없습니까.
나는 있다.
의외로 없는 것이므로 자작했습니다. 이미 있으면 미안해.
함수명이 다사인 것과 Mathf의 확장 메소드가 되어 있지 않기 때문에 그 근처는 적당히 부탁합니다.
esin.cs
float ESin(float rad){
float HALF_PI = 0.5f*Mathf.PI;
int num = Mathf.FloorToInt( rad / HALF_PI );
if ( (num & 1) == 0 ){
return num + Mathf.Sin( Mathf.Repeat(rad, HALF_PI) );
}
else{
return num + (1.0f+Mathf.Sin( Mathf.Repeat(rad,HALF_PI)+1.5f*Mathf.PI ));
}
}
하는 것은 0.5PI에서 1.5PI로 라디안을 날려 Sin 함수를 부드럽게 연결하면서 0.5PI마다 값이 증가하도록 하고 있습니다.
Unity 등에서 걷는 것처럼 진동하면서 늘어나는 물건에 사용하면 그것처럼 움직입니다.
삼각함수의 주기를 사용하고 있기 때문에, 상하동에 삼각함수를 사용해 동기시키거나 임의의 시간에 특정의 위치까지 선형 보간하는 것 같은 용도에도 사용할 수 있으므로 비교적 편리하다고 생각합니다.
Reference
이 문제에 관하여(값이 계속 증가하는 삼각 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hadoumune/items/3aef7b6844529de744cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)