Hwan'Story › @kim-hwan

비선형적인 슬라이드바 Value

· (수정 ) · 조회 85

비선형적인 슬라이드바의 값을 얻기 위해서 이차함수 곡선을 이용한다.

점 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)

121.png

이제 슬라이드바의 값을 함수의 X값에 넣어서 얻어진 값을 사용하면 비선형적인 값을 얻을 수 있다.

관련 게시글