diff options
| -rw-r--r-- | engine.c | 18 |
1 files changed, 7 insertions, 11 deletions
| @@ -23,6 +23,13 @@ static void highlight_line(int value, int y, int max_x, uint32_t color); | |||
| 23 | static int64_t | 23 | static int64_t |
| 24 | engine_normalize(int height, int y) | 24 | engine_normalize(int height, int y) |
| 25 | { | 25 | { |
| 26 | /* | ||
| 27 | double xf = ((double)x) / 100.0f; | ||
| 28 | double yf = g_normalize_factor * (xf*xf-xf) + xf; | ||
| 29 | y = ax^2 + x - ax = a * (x^2 - x) + x | ||
| 30 | int y = scale(g_min_y + (int)(((double)height) * yf)); | ||
| 31 | */ | ||
| 32 | |||
| 26 | int64_t yf = (y << 16) / height; | 33 | int64_t yf = (y << 16) / height; |
| 27 | yf = (((yf * yf - (yf << 16)) * ((int64_t)g_normalize_factor))) + (yf << 32); | 34 | yf = (((yf * yf - (yf << 16)) * ((int64_t)g_normalize_factor))) + (yf << 32); |
| 28 | return (((int64_t)height) * yf) >> 32; | 35 | return (((int64_t)height) * yf) >> 32; |
| @@ -58,17 +65,6 @@ engine_redraw() | |||
| 58 | 65 | ||
| 59 | for (int x=0; x<height; x+=20) { | 66 | for (int x=0; x<height; x+=20) { |
| 60 | int y = engine_normalize(height, x); | 67 | int y = engine_normalize(height, x); |
| 61 | /* | ||
| 62 | int64_t xf = (x << 16) / 100; | ||
| 63 | int64_t yf = (((xf * xf - (xf << 16)) * ((int64_t)g_normalize_factor))) + (xf << 32); | ||
| 64 | int64_t yo = (((int64_t)height) * yf) >> 48; | ||
| 65 | |||
| 66 | double xf = ((double)x) / 100.0f; | ||
| 67 | double yf = g_normalize_factor * (xf*xf-xf) + xf; | ||
| 68 | y = ax^2 + x - ax = a * (x^2 - x) + x | ||
| 69 | int y = scale(g_min_y + (int)(((double)height) * yf)); | ||
| 70 | */ | ||
| 71 | |||
| 72 | display_line_color(0, scale(g_min_y + (y>>16)), MAX_X, scale(g_min_y + (y>>16)), 0x1f1f1f1f); | 68 | display_line_color(0, scale(g_min_y + (y>>16)), MAX_X, scale(g_min_y + (y>>16)), 0x1f1f1f1f); |
| 73 | if (y >> 16 > (tos2 * height) / 100 ) | 69 | if (y >> 16 > (tos2 * height) / 100 ) |
| 74 | t1++; | 70 | t1++; |
