비선형적인 슬라이드바 Value
비선형적인 슬라이드바의 값을 얻기 위해서 이차함수 곡선을 이용한다.
점 3개를 지나는 이차함수의 유도방법이 다음 사이트에 나와있다. http://www.vb-helper.com/howto_find_quadratic_curve.html
다음 사이트에서 얻은 정보로 함수를 만들어보면,
// 점 3개를 지나는 이차함수 유도
private void GetQuadraticCurveFunction(Point p1, Point p2, Point p3, out double A, out double B, out double C)
{
double a, b, c;
a = ((p2.Y - p1.Y)\ * (p1.X - p3.X) + (p3.Y - p1.Y)\ * (p2.X - p1.X)) / ((p1.X - p3.X)\ * (Math.Pow(p2.X, 2.0) - Math.Pow(p1.X, 2.0)) + (p2.X - p1.X)\ * (Math.Pow(p3.X, 2.0) - Math.Pow(p1.X, 2.0)));
b = ((p2.Y - p1.Y) - a\ * (Math.Pow(p2.X, 2.0) - Math.Pow(p1.X, 2.0))) / (p2.X - p1.X);
c = p1.Y - a\ * Math.Pow(p1.X, 2.0) - b\ * p1.X;
A = a;
B = b;
C = c;
}
예를들어 (0,0), (0.5, 0.75), (1,1) 을 지나는 이차함수는 f(x) = -x^2 + 2x 가 저 함수로 유도된다. (a = -1, b = 2, c = 0)
이제 슬라이드바의 값을 함수의 X값에 넣어서 얻어진 값을 사용하면 비선형적인 값을 얻을 수 있다.