如何用C标准库画图

hu_shanting111 2015-05-27 11:35:23
如题,C标准库中有没有图形库的,有没有画图函数的,请大神指教,谢谢。
...全文
463 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
一根烂笔头 2015-06-04
  • 打赏
  • 举报
回复
C标准肯定不会有绘图的东西额,它不属于语言的范畴。它属于窗口系统的范畴。一般都是基于x11的开发库。如果想用c写界面,推荐使用GTK
lixin_4055 2015-06-03
  • 打赏
  • 举报
回复
你画图只是想生成一张图片还是希望在程序中显示到屏幕上 如果是显示到屏幕上在windows下用GDI就可以绘制了,高效高级一点的可以directX或者OpenGL 如果只要生成图片,那么你可以按每个点一个int数字的方式组织号内存,用jpg库,png库编码,或者直接保存bmp格式
赵4老师 2015-06-03
  • 打赏
  • 举报
回复
yhlzxq 2015-06-03
  • 打赏
  • 举报
回复
c语音里画图函数很多,比如circle,line。
bear234 2015-06-03
  • 打赏
  • 举报
回复
c标准库里没有图形库 你要在显示器上画图,就必须经过系统---因为是系统把硬件结合起来的 所以我们不会把图形库嵌到c标准里 因为c是跨平台的 你嵌个图形库 不就只能在特定的系统上跑了吗?
mewiteor 2015-06-02
  • 打赏
  • 举报
回复
corfox_liu 2015-06-02
  • 打赏
  • 举报
回复
推荐使用opencv或opengl 简单的图片也可以自己按着图片的文件格式自己用c语言写,如bmp格式的,就是工作量太大
wang0635 2015-05-27
  • 打赏
  • 举报
回复
C标准库中没有图形函数 图形都跟环境有关
赵4老师 2015-05-27
  • 打赏
  • 举报
回复
仅供参考:
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
HWND WINAPI GetConsoleWindow();
void HideTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = FALSE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
void ShowTheCursor() {
    CONSOLE_CURSOR_INFO cciCursor;
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (GetConsoleCursorInfo(hStdOut, &cciCursor)) {
        cciCursor.bVisible = TRUE;
        SetConsoleCursorInfo(hStdOut, &cciCursor);
    }
}
int main() {
    HWND   hwnd;
    HDC    hdc;
    HFONT  hfont;
    RECT   rect,wsize;
    HBRUSH hbrush;
    int    y,x,d,g;

    system("color F0");
    system("cls");
    HideTheCursor();
    hwnd  =GetConsoleWindow();
    GetClientRect(hwnd,&wsize);
    hdc   =GetDC(hwnd);
    hfont =CreateFont(48,0,0,0,0,0,0,0,0,0,0,0,0,"华文楷体");
    hbrush=CreateSolidBrush((COLORREF)0x00FFFFFF);
    SelectObject(hdc,hfont);
    y=10;x=30;d=4;g=3;
    while (1) {
        rect.left=x;
        rect.top=y;
        rect.right=x+300+d+1;
        rect.bottom=y+60+d+1;
        FillRect(hdc, &rect, hbrush);
        TextOut(hdc,x+10,y+10,"地球人都知道!",14);
        MoveToEx(hdc,x+5,y+5,NULL);
        LineTo(hdc,x+300,y+  5);
        LineTo(hdc,x+300,y+ 60);
        LineTo(hdc,x+  5,y+ 60);
        LineTo(hdc,x+  5,y+  5);
        Sleep(15);
        if (_kbhit()) {getch();break;}
        switch (g) {
        case 0:if (y>                d) y-=d; else g=2;if (x>                d) x-=d; else g=1;break;// ↖
        case 1:if (y>                d) y-=d; else g=3;if (x<wsize.right-300-d) x+=d; else g=0;break;// ↗
        case 2:if (y<wsize.bottom-60-d) y+=d; else g=0;if (x>                d) x-=d; else g=3;break;// ↙
        case 3:if (y<wsize.bottom-60-d) y+=d; else g=1;if (x<wsize.right-300-d) x+=d; else g=2;break;// ↘
        }
    }
    DeleteObject(hbrush);
    DeleteObject(hfont);
    ReleaseDC(hwnd,hdc);
    system("color 07");
    system("cls");
    ShowTheCursor();
    return 0;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧