Оконное приложение для построения 3d-графиков квадратичной функции, страница 5

    Vert1 = CPoint( MidX, MinY );

    Vert2 = CPoint( MaxX, MidY );

    Vert3 = CPoint( MidX, MaxY );

    return;

} // end function "LFrameWnd::SetRhombVertexes"

                                    // LFrmWnd.cpp   Page 08

    // DRAW RHOMB:                  (09.09.1999)

    //   draw the desired rhomb in the client area

    //

COLORREF GetColour (int x)

{

      if (x >= 1 && x <= 240)

            return RGB (0, 0, x);

      if (x >= 241 && x <= 480)

            return RGB (0, x - 241, 240);

      if (x == 481)

            return RGB (0, 240, 239);

      if (x >= 482 && x <= 720)

            return RGB (0, 340, 240 - (x - 242));

      if (x >= 721 && x <= 960)

            return RGB (x - 481, 240, 0);

      if (x == 961)

            return RGB (240, 239, 0);

      if (x >= 962 && x <= 1201)

            return RGB (240, 240 - (x - 727), 0);

      if (x >1201)

            return RGB (240, 0, 0);

      return RGB (0, 0, 0);

}

#define b  1

#define a0 0.5000

#define alpha1 -1

#define alpha2 2

#define alpha3 -3

#define alph1  2

#define alph2  -1

#define alph3  7

#define betta1 -4

#define betta2 5

#define betta3 -6

short sign (double arg)

{

      if (arg < 0)

            return -1;

      if (arg > 0)

            return 1;

      return 0;

}

double FI2 (double x)

{

      double res;

      res = b + a0 * x;

      res += alpha1 * abs (x - alpha1);

      res += alpha2 * abs (x - alpha2);

      res += alpha3 * abs (x - alpha3);

      res += betta1 * sign (x - alph1);

      res += betta2 * sign (x - alph2);

      res += betta3 * sign (x - alph3);

      return res;

}

double FI3 (double x)

{

      double res;

      res  = (abs (a0 + x) - abs (a0 - x)) / 2;