View difference between Paste ID: n49wmSb3 and
SHOW:
|
|
- or go back to the newest paste.
1 | - | |
1 | + | // consine.c - Displays a 2D sine pattern in the console |
2 | // Created by flarn2006 | |
3 | // License: Creative Commons BY-NC-SA 3.0 | |
4 | ||
5 | #include <curses.h> | |
6 | #include <math.h> | |
7 | #include <stdlib.h> | |
8 | ||
9 | char levelchar(float value); | |
10 | ||
11 | int main(int argc, const char *argv[]) { | |
12 | int x, y; | |
13 | int maxx, maxy; | |
14 | initscr(); | |
15 | cbreak(); | |
16 | noecho(); | |
17 | getmaxyx(stdscr, maxy, maxx); | |
18 | ||
19 | for (y=0; y<=maxy; y++) | |
20 | for (x=0; x<=maxx; x++) { | |
21 | float fx = (float)x; | |
22 | float fy = (float)y; | |
23 | float value = fabsf(sin(fx/5.0)+sin(fy/2.5)); | |
24 | value /= 2.0; | |
25 | char level = levelchar(value); | |
26 | mvaddch(y, x, level); | |
27 | } | |
28 | ||
29 | getch(); | |
30 | endwin(); | |
31 | return 0; | |
32 | } | |
33 | ||
34 | char levelchar(float value) | |
35 | { | |
36 | const char *levels = "'.,-:;!|@#"; | |
37 | int index = (int)(10*value) % 10; | |
38 | return levels[index]; | |
39 | } |