要用C语言绘制曲线,可以使用图形库如OpenGL或者SDL来实现。下面是一个简单的使用SDL绘制曲线的示例代码:
#include <SDL.h>
int main(int argc, char *argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow("Curve Drawing",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
800, 600, 0);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
int x1 = 100, y1 = 100;
int x2 = 700, y2 = 500;
int steps = 100;
for (int i = 0; i < steps; i++) {
float t = (float)i / steps;
int x = x1 + t * (x2 - x1);
int y = y1 + t * (y2 - y1);
SDL_RenderDrawPoint(renderer, x, y);
}
SDL_RenderPresent(renderer);
bool quit = false;
SDL_Event event;
while (!quit) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
}
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
这个示例代码使用SDL库来创建窗口和渲染器,然后绘制一条直线。你可以修改x1
、y1
、x2
、y2
来绘制不同的曲线,也可以修改steps
来控制曲线的平滑度。整个绘制过程是通过在起点和终点之间插值的方式来实现的。最后,通过处理SDL的事件循环来保持窗口显示,直到用户关闭窗口。