home *** CD-ROM | disk | FTP | other *** search
- #include <curses.h>
-
- static void Plot();
-
- int main()
-
- {
- int a, b, K, k, M, n_p, n_q, i;
- double p_min, p_max, q_min, q_max, delta_p, delta_q, p, q, x, y;
- double x_2, y_2, r, new_x;
-
- initscr();
- start_color();
- for (i = 1; i <= COLOR_WHITE; ++i)
- init_pair(i, i, COLOR_BLACK);
- a = COLS;
- b = LINES;
- p_min = -2.25;
- p_max = 0.75;
- q_min = -1.5;
- q_max = 1.5;
- K = 'z' - 'a';
- M = 100;
- delta_p = (p_max - p_min) / (a - 1);
- delta_q = (q_max - q_min) / (b - 1);
- for (n_p = 0; n_p < a; ++n_p)
- for (n_q = 0; n_q < b; ++n_q)
- {
- p = p_min + n_p * delta_p;
- q = q_min + n_q * delta_q;
- k = 0;
- x = 0;
- y = 0;
- do
- {
- x_2 = x * x;
- y_2 = y * y;
- new_x = x_2 - y_2 + p;
- y = 2 * x * y + q;
- x = new_x;
- ++k;
- r = x_2 + y_2;
- } while (r <= M && k != K);
- Plot(n_q, n_p, k != K ? k : 0);
- }
- endwin();
- return 0;
- }
-
- static void Plot(y, x, color)
-
- int y, x, color;
-
- {
- if (color != 0)
- mvwaddch(stdscr, y, x, 'a' + color | COLOR_PAIR((color % 7) +
- 1) | A_STANDOUT);
- wmove(stdscr, y, x);
- wrefresh(stdscr);
- }
-