问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言编程为什么不能画图

发布网友 发布时间:2022-06-02 03:41

我来回答

3个回答

热心网友 时间:2023-10-27 12:20

Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h
中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使用图形函数。
1. 图形模式的初始化
不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。设置屏幕为图形模式, 可用下列图形初始化函数:
void far initgraph(int far *gdriver, int far *gmode, char *path);
其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。
图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、 VGA 图形适配器就调用驱动程序EGAVGA.BGI。
表2. 图形驱动器、模式的符号常数及数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
图形驱动器(gdriver) 图形模式(gmode)
——————————— ——————————— 色调 分辨率
符号常数 数值 符号常数 数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGA 1 CGAC0 0 C0 320*200
CGAC1 1 C1 320*200
CGAC2 2 C2 320*200
CGAC3 3 C3 320*200
CGAHI 4 2色 640*200
———————————————————————————————————
MCGA 2 MCGAC0 0 C0 320*200
MCGAC1 1 C1 320*200
MCGAC2 2 C2 320*200
MCGAC3 3 C3 320*200
MCGAMED 4 2色 640*200
MCGAHI 5 2色 640*480
———————————————————————————————————
EGA 3 EGALO 0 16色 640*200
EGAHI 1 16色 640*350
———————————————————————————————————
EGA64 4 EGA64LO 0 16色 640*200
EGA64HI 1 4色 640*350
———————————————————————————————————
EGAMON 5 EGAMONHI 0 2色 640*350
———————————————————————————————————
IBM8514 6 IBM8514LO 0 256色 640*480
IBM8514HI 1 256色 1024*768
———————————————————————————————————
HERC 7 HERCMONOHI 0 2色 720*348
———————————————————————————————————
ATT400 8 ATT400C0 0 C0 320*200
ATT400C1 1 C1 320*200
ATT400C2 2 C2 320*200
ATT400C3 3 C3 320*200
ATT400MED 4 2色 320*200
ATT400HI 5 2色 320*200
———————————————————————————————————
VGA 9 VGALO 0 16色 640*200
VGAMED 1 16色 640*350
VGAHI 2 16色 640*480
———————————————————————————————————
PC3270 10 PC3270HI 0 2色 720*350
———————————————————————————————————
DETECT 0 用于硬件测试
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

例4. 使用图形初始化函数设置VGA高分辨率图形模式
#include <graphics.h>
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver, &gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*画一长方体*/
getch();
closegraph();
return 0;
}

有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数, 其调用格式为:
void far detectgraph(int *gdriver, *gmode);
其中gdriver和gmode的意义与上面相同。

例5. 自动进行硬件测试后进行图形初始化
#include <graphics.h>
int main()
{
int gdriver, gmode;
detectgraph(&gdriver, &gmode); /*自动测试硬件*/
printf("the graphics driver is %d, mode is %d\n", driver,
gmode); /*输出测试结果*/
getch();
initgraph(&gdriver, &gmode, "c:\\tc");
/* 根据测试结果初始化图形*/
bar3d(10, 10, 130, 250, 20, 1);
getch();
closegraph();
return 0;
}

上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化设置, 但Turbo C提供了一种更简单的方法, 即用gdriver= DETECT 语句后再跟 initgraph()函数就行了。采用这种方法后, 上例可改为:

例6.
#include <graphics.h>
int main()
{
int gdriver=DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\tc");
bar3d(50, 50, 150, 30, 1);
getch();
closegraph();
return 0;
}
另外, Turbo C提供了退出图形状态的函数closegraph(), 其调用格式为:
void far closegraph(void);
调用该函数后可退出图形状态而进入文本方式(Turbo C 默认方式), 并释放用于保存图形驱动程序和字体的系统内存。

参考资料:C语言编程宝典

热心网友 时间:2023-10-27 12:20

如果你是TC的话 那么你应该没打开这个头文件啊 #include "graphics.h"
你增加下面的代码应该可以啊

#include "graphics.h" /*画图象用到的头文件*/
void initgr(void)
{
int gd = DETECT, gm = 0;
registerbgidriver(EGAVGA_driver);
initgraph(&gd, &gm, "");
}
int main(void)
{initgr(); /*调用initgr();函数 ,才可以画图象啊*/
circle(320,240,50);
getch();
}

热心网友 时间:2023-10-27 12:21

在函数声明里要声明 #include <graphics.h>
在main(){}函数里输入 int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"");
然后就可以画图了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机有东西要更新了 在家没有无线 办夜间流量包可以嘛 3G流量可以... 联通3g卡有包3072M,就是3G流量这个套餐吗? ...偷偷改时间补打卡记录,补完把时间调回去了,里面会有时间修改过的记录... ...是以前打的卡就会有变动,打出来的考勤是调整时间以后的吗?_百度知 ... 梦见背喜欢的女孩的预兆 相比互联网超越1号,凡尔赛plus有什么弊端? 相比尊享福重疾险,凡尔赛plus重疾险有啥亮点? 凡尔赛plus有哪些优点? 相比达尔文6号重疾险,凡尔赛plus重疾险能有哪些亮点? 如果是女孩去日本上学,安全吗? 法院传票原告第一次可以不去协商吗 收到法院传票第一次没到庭,也没签收会怎么样? 收到法院的传票不去开庭会怎么样 增强肺功能的方法有哪些? 到法院传票不去会怎么样 吃杏仁有对肺有什么好处 法院通知拿传票不去拿会怎么样 虚无世界3安佛利比亚的肺有什么用 收到法院传票不去会怎么样 法院第一次传票没去,第二次什么时候来传票再开庭? 第一次法院开庭传票我可以不去吗? 法院传票不去怎么办 执行局传票第一次不去会有什么后果 法院第一次传票不去有什么后果 3G手机如何解图案锁 咸宁市小学生可以转学去十堰读书吗? 咸宁有哪些私立小学?是私立的! 具体位置在咸宁与温泉两地时间的地方有私立小学么? 咸宁市嘉鱼县有哪些小学都叫什么? 咸宁市最大的民营学校 咸宁天洁外校跟实验小学哪个好 微信好友删除了,没有手机号,没有,只有微信名,怎么样才能找回微信好友? 跪求好看的小说~~~ belif护肤品怎么样 交通事故责任纠纷如何列保险公司为被告 belif的水乳 不同颜色有什么区别 belif产品冬天用怎么样,脸上有红血丝 hera , sum37 , belif, 雪花秀 哪款保湿比较好 适合19岁 混合偏油 敏... 交通事故案件保险公司列为被告 微信平安富盈5号我买了14000想取取不出来了 省人民医院附近有公共自行车吗 长治居然之家附近有没有自行车站点 湘湖附近有公共自行车出租么? 就问广州市珠江新城附近有公共自行车网点吗?在哪些地点?急! 谁有免费下载中文字体包的地址!! (广告设计师常用的字体) 拜求!! 地铁6号线北运河西附近有没有公共自行车? 怎么将苹果手机已有的铃声设置为电话铃声 支付宝打开城市服务变成大字是什么原因? 定投指数基金好还是积极配置基金好啊 支付宝里改社保卡到了自动弹出城市没弹出怎么弄? 基金定投是股票型好还是配置型好?