From 822890d466a45ce3b26821c6524f2712905bdacc Mon Sep 17 00:00:00 2001 From: Stanislav N Mikhailov Date: Sun, 5 Apr 2026 00:37:29 +0300 Subject: [PATCH] Render sine wave as continuous polyline --- src/render/sine_wave.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/render/sine_wave.c b/src/render/sine_wave.c index 5dad2e6..d918ec9 100644 --- a/src/render/sine_wave.c +++ b/src/render/sine_wave.c @@ -1,4 +1,5 @@ #include "display/render/sine_wave.h" +#include "display/render/line.h" #include void render_sine_wave( @@ -18,10 +19,16 @@ void render_sine_wave( float step = (2.0f * (float)M_PI * frequency) / (float)(num_points - 1u); float x_step = (float)ctx->width / (float)(num_points - 1u); - for (uint16_t i = 0; i < num_points; ++i) + int prev_x = offset_x; + int prev_y = offset_y + (int)((float)amplitude * sinf(phase_shift)); + + for (uint16_t i = 1; i < num_points; ++i) { int x = offset_x + (int)((float)i * x_step); int y = offset_y + (int)((float)amplitude * sinf((float)i * step + phase_shift)); - render_pixel(ctx, x, y, color); + + render_line(ctx, prev_x, prev_y, x, y, color); + prev_x = x; + prev_y = y; } }