在C语言中进行图形绘制,通常需要借助外部图形库。以下是几种常见实现方式:
一、控制台字符绘图(无需外部库)
#include <stdio.h>
void draw_triangle(int height) {
for (int i = 0; i < height; i++) {
// 打印空格
for (int j = 0; j < height - i - 1; j++) printf(" ");
// 打印星号
for (int k = 0; k < 2*i + 1; k++) printf("*");
printf("\n");
}
}
int main() {
draw_triangle(5); // 绘制高度为5的三角形
return 0;
}
输出:
*
***
*****
*******
*********
二、使用图形库(推荐)
1. EasyX (Windows平台)
#include <graphics.h> // EasyX图形库头文件
int main() {
initgraph(640, 480); // 创建640x480像素窗口
// 绘制红色矩形
setfillcolor(RED);
fillrectangle(50, 50, 200, 200);
// 绘制绿色圆形
setfillcolor(GREEN);
solidcircle(320, 240, 100);
// 绘制蓝色文字
settextcolor(BLUE);
outtextxy(250, 400, "C语言图形绘制");
getch(); // 等待按键
closegraph(); // 关闭图形窗口
return 0;
}
2. SDL(跨平台)
#include <SDL2/SDL.h>
int main() {
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow("SDL绘图", 0, 0, 800, 600, 0);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
// 清屏(白色背景)
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
// 绘制红色矩形
SDL_Rect rect = {100, 100, 200, 150};
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
SDL_RenderFillRect(renderer, &rect);
// 绘制蓝色线条
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);
SDL_RenderDrawLine(renderer, 50, 50, 400, 300);
SDL_RenderPresent(renderer); // 刷新显示
SDL_Delay(5000); // 显示5秒
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
三、数学函数绘图(正弦曲线)
#include <stdio.h>
#include <math.h>
#define WIDTH 80
#define HEIGHT 20
void draw_sine_wave() {
char canvas[HEIGHT][WIDTH];
// 初始化画布
for (int y = 0; y < HEIGHT; y++)
for (int x = 0; x < WIDTH; x++)
canvas[y][x] = ' ';
// 计算正弦曲线
for (int x = 0; x < WIDTH; x++) {
double radians = x * 2 * M_PI / WIDTH;
int y = (int)((sin(radians) + 1) * (HEIGHT-1)/2);
canvas[y][x] = '*';
}
// 输出图形
for (int y = 0; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++)
printf("%c", canvas[y][x]);
printf("\n");
}
}
int main() {
draw_sine_wave();
return 0;
}
开发环境配置建议:
- 控制台绘图:任何C编译器(如GCC、Clang)
- EasyX:仅支持Windows,需安装EasyX库
- SDL:跨平台,需安装SDL2开发库
- Ubuntu:
sudo apt install libsdl2-dev - Windows: 下载SDL2开发包并配置项目
- Ubuntu:
提示:复杂图形项目建议使用SDL/OpenGL等专业库,支持3D渲染、纹理贴图等高级功能。
1万+

被折叠的 条评论
为什么被折叠?



