home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3048 / code.c next >
Encoding:
C/C++ Source or Header  |  1991-03-12  |  1.0 KB  |  61 lines

  1. #include <curses.h>
  2.  
  3. static void Plot();
  4.  
  5. int main()
  6.  
  7. {
  8.     int a, b, K, k, M, n_p, n_q, i;
  9.     double p_min, p_max, q_min, q_max, delta_p, delta_q, p, q, x, y;
  10.     double x_2, y_2, r, new_x;
  11.  
  12.     initscr();
  13.     start_color();
  14.     for (i = 1; i <= COLOR_WHITE; ++i)
  15.         init_pair(i, i, COLOR_BLACK);
  16.     a = COLS;
  17.     b = LINES;
  18.     p_min = -2.25;
  19.     p_max = 0.75;
  20.     q_min = -1.5;
  21.     q_max = 1.5;
  22.     K = 'z' - 'a';
  23.     M = 100;
  24.     delta_p = (p_max - p_min) / (a - 1);
  25.     delta_q = (q_max - q_min) / (b - 1);
  26.     for (n_p = 0; n_p < a; ++n_p)
  27.         for (n_q = 0; n_q < b; ++n_q)
  28.         {
  29.             p = p_min + n_p * delta_p;
  30.             q = q_min + n_q * delta_q;
  31.             k = 0;
  32.             x = 0;
  33.             y = 0;
  34.             do
  35.             {
  36.                 x_2 = x * x;
  37.                 y_2 = y * y;
  38.                 new_x = x_2 - y_2 + p;
  39.                 y = 2 * x * y + q;
  40.                 x = new_x;
  41.                 ++k;
  42.                 r = x_2 + y_2;
  43.             } while (r <= M && k != K);
  44.             Plot(n_q, n_p, k != K ? k : 0);
  45.         }
  46.     endwin();
  47.     return 0;
  48. }
  49.  
  50. static void Plot(y, x, color)
  51.  
  52. int y, x, color;
  53.  
  54. {
  55.     if (color != 0)
  56.         mvwaddch(stdscr, y, x, 'a' + color | COLOR_PAIR((color % 7) +
  57.             1) | A_STANDOUT);
  58.     wmove(stdscr, y, x);
  59.     wrefresh(stdscr);
  60. }
  61.