c语言

c语言怎么绘制波形图

小亿
147
2024-02-23 11:49:32
栏目: 编程语言

在C语言中,可以使用图形库来绘制波形图。常用的图形库包括SDL、OpenGL、GTK等。以下是使用SDL库绘制波形图的示例代码:

#include <SDL2/SDL.h>

#define SCREEN_WIDTH 800
#define SCREEN_HEIGHT 600

void drawWaveform(SDL_Renderer* renderer) {
    int i;
    SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); // 设置绘制颜色为白色
    for (i = 0; i < SCREEN_WIDTH; i++) {
        int y = SCREEN_HEIGHT / 2 + 50 * sin(i / 20.0); // 根据正弦函数计算波形点的y坐标
        SDL_RenderDrawPoint(renderer, i, y); // 绘制波形点
    }
}

int main() {
    SDL_Window* window;
    SDL_Renderer* renderer;

    SDL_Init(SDL_INIT_VIDEO);
    SDL_CreateWindowAndRenderer(SCREEN_WIDTH, SCREEN_HEIGHT, 0, &window, &renderer);

    SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); // 设置背景颜色为黑色
    SDL_RenderClear(renderer);

    drawWaveform(renderer);

    SDL_RenderPresent(renderer);

    SDL_Delay(5000); // 延时5秒

    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
}

上面的代码使用SDL库在窗口中绘制了一个简单的正弦波形图。首先,通过SDL_Init()函数初始化SDL库,并创建窗口和渲染器。然后在窗口中绘制波形图,最后通过SDL_RenderPresent()函数显示绘制的波形图。最后,通过SDL_Delay()函数延时5秒后关闭窗口并释放资源。

需要注意的是,需要在编译时链接SDL库,可以使用如下命令进行编译:

gcc -o waveform waveform.c `sdl2-config --cflags --libs`

0
看了该问题的人还看了