c语言如何绘画曲线

c语言如何绘画曲线

#include

#include

#include

#define PI 3.14159265

#define WIDTH 640

#define HEIGHT 480

void drawSineWave(SDL_Renderer* renderer) {

int x, y;

double scale = 50.0; // 缩放因子

SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); // 设置颜色为白色

// 遍历每个像素点

for (x = 0; x < WIDTH; x++) {

// 计算正弦曲线上的点

y = (int)(HEIGHT / 2 - scale * sin((x - WIDTH / 2) * PI / 180.0));

// 绘制点

SDL_RenderDrawPoint(renderer, x, y);

}

}

int main(int argc, char* argv[]) {

if (SDL_Init(SDL_INIT_VIDEO) != 0) {

printf("SDL_Init Error: %sn", SDL_GetError());

return 1;

}

SDL_Window* win = SDL_CreateWindow("Sine Wave", 100, 100, WIDTH, HEIGHT, SDL_WINDOW_SHOWN);

if (win == NULL) {

printf("SDL_CreateWindow Error: %sn", SDL_GetError());

SDL_Quit();

return 1;

}

SDL_Renderer* renderer = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);

if (renderer == NULL) {

SDL_DestroyWindow(win);

printf("SDL_CreateRenderer Error: %sn", SDL_GetError());

SDL_Quit();

return 1;

}

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

SDL_RenderClear(renderer);

drawSineWave(renderer);

SDL_RenderPresent(renderer);

SDL_Event e;

int quit = 0;

while (!quit) {

while (SDL_PollEvent(&e)) {

if (e.type == SDL_QUIT) {

quit = 1;

}

}

}

SDL_DestroyRenderer(renderer);

SDL_DestroyWindow(win);

SDL_Quit();

return 0;

}

相关推荐

黄鹤楼雅韵多少钱一包 黄鹤楼雅韵价格表图查询
365bet线上注册

黄鹤楼雅韵多少钱一包 黄鹤楼雅韵价格表图查询

📅 07-24 👁️ 4585
诗词吟诵知识
bst365.com

诗词吟诵知识

📅 06-30 👁️ 7324
无线路由器桥接完整教程(不会断网)【图文详解】
365亚洲体育投注

无线路由器桥接完整教程(不会断网)【图文详解】

📅 06-29 👁️ 6902