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

谁有C语言的画图应用程序

发布网友 发布时间:2022-04-29 23:38

我来回答

1个回答

热心网友 时间:2022-06-26 03:56

#include<stdio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
#include<bios.h>
#include<ctype.h>
#include<process.h>
#include<conio.h>
#define COLOR WHITE
#define F1 59
#define F2 60
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define HOME 71
#define END 79
#define PAGEUP 73
#define PAGEDOWN 81
int inc=1;
typedef union /*返回键盘输入值*/
{char c[2];
int i;
}KEY;
KEY key;
typedef struct /*定义点*/
{int x;
int y;
}DOT;
DOT dis,firstdot,secdot,dot1;
int point();
int do_that();
void mv_cp(int startx,int starty,int endx,int endy,int x,int y,int flag);/*移动函数*/
void fill(int startx,int starty,int endx,int endy);/*填充*/
void colour();/*颜色*/
void menu(void);/*主菜单*/
void save(void);/*保存*/
void load(void);/*打开文件*/
void xhairs(int a,int b);/*显示光标*/
void arr_key(char c);

/*--------------------------------主函数---------------------------------------*/
void main()
{
int k,j,m,r,x1,y1,xn,yn;
int driver,mode;
dis.x=200;
dis.y=200;
driver=DETECT;
mode=VGAHI;
registerbgidriver(EGAVGA_driver);
registerbgifont(TRIPLEX_FONT);
initgraph(&driver,&mode,"f:\\tc2.01\\BGI");
setbkcolor(BLUE);
cleardevice();
setcolor(YELLOW);
xhairs(dis.x,dis.y);
while(key.c[0]!='q')
{
menu();/*显示菜单*/
key.i=bioskey(0);
xhairs(dis.x,dis.y);
if(!key.c[0])
arr_key(key.c[1]);
else
switch(tolower(key.c[0]))
{
case 'f':
xhairs(dis.x,dis.y);colour();break;
case 'd':x1=y1=0;xhairs(dis.x,dis.y);setcolor(LIGHTRED);
outtextxy(10,22+(13)*30,"b:begine point");
outtextxy(10,22+(14)*30,"g:give up");
x1=point();
fill(6,410,149,430);
xhairs(dis.x,dis.y);
outtextxy(10,22+(13)*30,"e:end point");
outtextxy(10,22+(14)*30,"g:give up");
y1=point();
fill(6,410,149,460);
setcolor(COLOR);
if(x1&&y1)
{outtextxy(10,22+(13)*30,"move the +");
outtextxy(10,22+(14)*30,"y:do n:no");
}
x1=0;
xhairs(dis.x,dis.y);
x1=do_that();
if(x1)
{xn=dis.x;yn=dis.y;
mv_cp(firstdot.x,firstdot.y,secdot.x,secdot.y,xn,yn,0);
}
fill(6,410,149,460);break;
case 'l':x1=y1=0;/*画直线*/
xhairs(dis.x,dis.y);
setcolor(LIGHTRED);
outtextxy(10,22+(13)*30,"b:begin point");
outtextxy(10,22+(14)*30,"g:give up");
x1=point();
fill(6,410,149,430);
xhairs(dis.x,dis.y);
outtextxy(10,22+(13)*30,"e:end point");
outtextxy(10,22+(14)*30,"g:five up");
y1=point();
setcolor(COLOR);
if(x1&&y1)
line(firstdot.x,firstdot.y,secdot.x,secdot.y);
fill(6,410,155,460);
break;
case 'o':/*画圆形*/
x1=y1=0;
xhairs(dis.x,dis.y);
setcolor(LIGHTRED);
outtextxy(10,22+(13)*30,"b:radius");
outtextxy(10,22+(14)*30,"g:give up");
x1=point();
fill(6,410,149,430);
xhairs(dis.x,dis.y);
outtextxy(10,22+(13)*30,"e:radius");
outtextxy(10,22+(14)*30,"g:give up");
y1=point();
if(x1&&y1) setcolor(COLOR);
r=sqrt(fabs((secdot.x-firstdot.x)*(secdot.x-firstdot.x)+(secdot.y-firstdot.y)*(secdot.y-firstdot.y)));
if(x1&&y1) circle(firstdot.x,firstdot.y,r);
fill(6,410,149,460);break;
case 'h':/*画矩形*/
x1=y1=0;
xhairs(dis.x,dis.y);
setcolor(LIGHTRED);
outtextxy(10,22+(13)*30,"b:left top");
outtextxy(10,22+(14)*30,"g:give up");
x1=point();
fill(6,410,149,430);
xhairs(dis.x,dis.y);
outtextxy(10,22+(13)*30,"e:right bottom");
outtextxy(10,22+(14)*30,"g:give up");
y1=point();
if(x1&&y1)
{
setcolor(COLOR);
rectangle(firstdot.x,firstdot.y,secdot.x,secdot.y);
}
fill(6,410,155,460);break;
case 's':cleardevice();break;/*清屏*/
case 'w':save();break;
case 'r':load();break;
case 'm':x1=y1=0;/*图形移动*/
xhairs(dis.x,dis.y);
setcolor(LIGHTRED);
outtextxy(10,22+(13)*30,"b:begin point");
outtextxy(10,22+(14)*30,"g:give up");
x1=point();
fill(6,410,149,430);
xhairs(dis.x,dis.y);
outtextxy(10,22+(13)*30,"e:end point");
outtextxy(10,22+(14)*30,"g:give up");
y1=point();
fill(6,410,149,460);
setcolor(COLOR);
if(x1&&y1)
{
outtextxy(10,22+(13)*30,"move the +");
outtextxy(10,22+(14)*30,"y:do n:no");
}
x1=0;
xhairs(dis.x,dis.y);
x1=do_that();
if(x1)
{
xn=dis.x;yn=dis.y;
mv_cp(firstdot.x,firstdot.y,secdot.x,secdot.y,xn,yn,1);

}
fill(6,410,149,460);break;
}
xhairs(dis.x,dis.y);

}
closegraph();
}

/*--------------------------------显示光标函数--------------------------------*/
void xhairs(int a,int b)
{
int i;
for(i=a-3;i<=a+3;i++)
putpixel(i,b,15^getpixel(i,b));
for(i=b-3;i<=b+3;i++)
putpixel(a,i,15^getpixel(a,i));
}

/*------------------------------菜单函数------------------------------*/
void menu(void)
{
#define STARTX 10
#define STARTY 22
#define DISTANCE 30
int i;
char *menu_name[]={"F1:setp=1",
"F2:step=5",
"l:draw line",
"draw cirle",
"h:graw box",
"s:clear screen",
"m:move",
"d:copy",
"f:fill color",
"w:save",
"r:load",
"q:quit"};
setcolor(WHITE);
rectangle(5,5,150,470);
rectangle(5,403,150,470);
rectangle(155,5,635,470);
setcolor(LIGHTBLUE);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,2);
outtextxy(36,STARTY,"menu");
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
for(i=0;i<12;i++)
outtextxy(STARTX,STARTY+(i+1)*DISTANCE,menu_name[i]);
}

/*---------------------------------保存函数---------------------------------*/
void save(void)
{int i,j;
FILE *fp;
if((fp=fopen("graph.dat","w+"))==NULL)
{printf("cannot open this file!");
exit(0);
}
fill(260,473,400,480);
for(i=5;i<470;i++)
for(j=155;j<=635;j++)
fputc(getpixel(j,i),fp);
fclose(fp);
outtextxy(260,471,"save over!");
}

/*-----------------------------------------打开函数------------------------*/
void load(void)
{
int i,j;
FILE *fp;
if((fp=fopen("graph.dat","r+"))==NULL)
{
outtextxy(260,471,"cannot open this file!");
getch();
exit(0);
}
fill(260,471,400,480);
outtextxy(280,471,"loading......");
for(i=5;i<=470;i++)
for(j=155;j<=635;j++)
putpixel(j,i,fgetc(fp));
fill(260,471,400,480);
fclose(fp);
outtextxy(280,471,"loading over");
}

/*-----------------------------------------移动复制函数---------------------------*/
void mv_cp(int startx,int starty,int endx,int endy,int x,int y,int flag)
{
int i,j;
unsigned char c;
if(startx>endx)
{i=startx;startx=endx;endx=i;}
if(starty>endy)
{i=starty;
starty=endy;endy=i;}
for(;startx<=endx;startx++,x++)
for(i=starty,j=y;i<=endy;i++,j++)
{c=getpixel(startx,i);
if(flag) putpixel(startx,i,BLUE);
putpixel(x,j,c);
}
}

/*----------------------------返回点坐标函数----------------------------------*/
int point()
{int valid_p=0,g=1;
key.c[0]='';
while(key.c[0]!='p')
{key.i=bioskey(0);
xhairs(dis.x,dis.y);
if(!key.c[0])
arr_key(key.c[1]);
else
switch(tolower(key.c[0]))
{case 'b':putpixel(dis.x,dis.y,COLOR);
firstdot.x=dis.x;
firstdot.y=dis.y;
key.c[0]='p';
valid_p=1;
break;
case 'e':
putpixel(dis.x,dis.y,COLOR);
secdot.x=dis.x;
secdot.y=dis.y;
key.c[0]='p';
valid_p=2;break;
case 'g':
firstdot.x=secdot.x;
firstdot.y=secdot.y;
key.c[0]='p';
g=0;break;
}
xhairs(dis.x,dis.y);
if(valid_p==1||valid_p==2||g==0)
break;
}
xhairs(dis.x,dis.y);
return valid_p;

}

/*------------------------------确认操作------------------------*/
int do_that()
{
int valid_p=0,g=1;
key.c[0]='';
while(key.c[0]!='p')
{key.i=bioskey(0);
xhairs(dis.x,dis.y);
if(!key.c[0])
arr_key(key.c[1]);
else
switch(tolower(key.c[0]))
{case 'y':
key.c[0]='p';
putpixel(dis.x,dis.y,COLOR);
valid_p=1;break;
case 'n':
key.c[0]='p';
firstdot.x=secdot.x;
firstdot.y=secdot.y;
g=0;break;}
xhairs(dis.x,dis.y);
if(valid_p==1||g==0)
break;
}
xhairs(dis.x,dis.y);
return valid_p;
}

/*-----------------------------填充-------------------------------*/
void fill(int startx,int starty,int endx,int endy)
{int i,j;
for(i=startx;i<=endx;i++)
for(j=starty;j<=endy;j++)
{putpixel(i,j,BLUE);
}
}

/*-----------------------------------颜色定义--------------------------------*/
void colour()
{
key.c[0]='';
setcolor(RED);
outtextxy(10,412,"R");
setcolor(GREEN);
outtextxy(40,412,"G");
setcolor(CYAN);
outtextxy(70,412,"C");
setcolor(LIGHTBLUE);
outtextxy(10,432,"L");
setcolor(MAGENTA);
outtextxy(40,432,"M");
setcolor(YELLOW);
outtextxy(70,432,"Y");
setcolor(WHITE);
outtextxy(10,452,"W");
setcolor(BROWN);
outtextxy(40,452,"N");
setcolor(LIGHTRED);
outtextxy(70,452,"D");
while(key.c[0]!='p')
{
key.i=bioskey(0);
xhairs(dis.x,dis.y);
if(!key.c[0])
arr_key(key.c[0]);
else
{switch(tolower(key.c[0]))
{case 'y' : setfillstyle(SOLID_FILL,YELLOW); break;
case 'r' : setfillstyle(SOLID_FILL,RED);break;
case 'g' : setfillstyle(SOLID_FILL,GREEN);break;
case 'c' : setfillstyle(SOLID_FILL,CYAN);break;
case 'l' : setfillstyle(SOLID_FILL,LIGHTBLUE);break;
case 'm' : setfillstyle(SOLID_FILL,MAGENTA);break;
case 'w' : setfillstyle(SOLID_FILL,WHITE);break;
case 'n' : setfillstyle(SOLID_FILL,BROWN);break;
case 'd' : setfillstyle(SOLID_FILL,LIGHTRED);break;
}
key.c[0]='p';}

/*-------------------------光标---------------------*/
xhairs(dis.x,dis.y);
}
xhairs(dis.x,dis.y);
floodfill(dis.x,dis.y,WHITE);
fill(6,410,149,460);
}

/*-----------------------------光标控制----------------------------*/
void arr_key(char c)
{switch(c)
{case LEFT : dis.x-=inc;break;
case RIGHT : dis.x+=inc;break;
case UP : dis.y-=inc;break;
case DOWN : dis.y+=inc;break;
case F1 : inc=1;break;
case F2 : inc=5;break;
}
}
有没有C语言编写出名的应用程序。有哪些

记得DOS时代,有一本书叫做《C语言进阶》。封面有一行小字,说“为什么有人能用C语言写出CCED这样优秀的软件”。CCED是国产软件,曾是最出名的中文文字和图表处理软件,类似于金山WPS、微软Office。CCED最初用basic语言编写,后来用C语言改写。WPS一直都是用C语言写的。遗憾的是,在国内,当操作系统过渡...

C语言的流程图用什么软件来做?

1.Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。2.power designer是一款比较不错的画流程图软件。3.框图宝(MyFlowChart)是youfabao的在线流程图软件,可以在线绘制流程图,简单易用,基于云计算,数据永不丢失。

怎样用C语言编程实现在AUTOCAD上的自动画图?希望描述具体点,有例子更好...

手机版 我的知道 怎样用C语言编程实现在AUTOCAD上的自动画图?希望描述具体点,有例子更好 10 就是我需要实现固定零件的标准化绘图,希望编程实现以录入数据在CAD上绘出标准零件图的操作,想问下我需要知道哪些知识,有书或者例子请推荐下~或者把流程给列一下也好~谢谢~... 就是我需要实现固定零件的标准化绘图,希望...

有可以将C语言输出的坐标画成坐标图的软件吗?

如果是VC,就在onpaint或ondraw里用dc就可以画图。

c语言怎么画图?

C语言本身没有提供与绘图相关的函数调用,但是调用其他图形库,就可以很轻松实现绘图功能。比如,SDL,http://www.lazyfoo.net/SDL_tutorials/。

求一用C语言画直线的程序

C语言的话画直线用MoveTo()和LineTo()很简单啊。帮你复制一份我学习时老师给的画线两例:include&lt;graphics.h&gt; include&lt;math.h&gt; / 功 能:本函数的作用是用逐点比较法来画一条直线 格 式:void myline1(int x1,int y1,int x2,int y2,int color)参数说明:x1,y1是起始点坐标,x2,y2是...

C语言实现画图功能

tc/bc在dos下自带图形驱动,可以使用graphics.h 头文件调用标准C函数,如果坚决不用,请使用系统功能调用,自己编写绘图功能,DOS下使用int86()函数实现功能调用。有,你可以参考:支持SVGA的高分辨率绘图通过调用中断 10h的4f功能来实现 主要分辨率设置代码 unsigned char set_SVGA_mode(int vmode){union ...

c237画模板-C语言如何画图

在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!用下面的代码,在需要的地方(有注释)适当修改,就能画出自己喜欢的图形!PS:同样要编译运行后才能出效果。include&lt;stdio.h&gt; include&lt;sys/mman.h&gt; include&lt;fcntl.h&gt; include&lt;linux/fb.h&gt; include&lt;stdlib.h&gt; defineRGB888(r,...

C语言有没有自带画图函数库,该怎么应用?

有,你可以使用graphics.h 头文件调用标准C函数 不过 16位c编译器绘图,就是中断调用 turboc的图形库就是封装了中断调用,不过支持的分辨率最高只有640*480 并不支持SVGA 支持SVGA的高分辨率绘图通过调用中断 10h的4f功能来实现 主要分辨率设置代码 unsigned char set_SVGA_mode(int vmode){union REGS r...

C语言画图__并保存我画的图片

/* HELLO.C -- Hello, world */ include &lt;graphics.h&gt; include &lt;stdio.h&gt; void save_pic(char *fn,int maxx,int maxy){ typedef long LONG;typedef unsigned char BYTE;typedef unsigned long DWORD;typedef unsigned short WORD;typedef struct tagBITMAPFILEHEADER { WORD bfType;DWORD bf...

使用画图应用程序作画一幅 怎样创建画图应用程序的快捷方式 创建画图应用程序文件的快捷方式 用c语言编写画图程序 画图应用程序在哪 画图应用程序快捷方式 创建画图应用程序快捷方式 c语言的画图的命令 利用画图程序可以
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
王凤麟作品成就 王凤麟人物简介 散茶自有真香 狗肉又叫什么肉 奇米影音如何下载到手机 肉的别称雅号 奇米影视网站介绍 小米1是支不支持JAVA扩展啊,苏宁电器上买的联通定制版说不支持,到底支... 小米手机怎么玩java游戏?网上下载的java模拟器用不了 小米Java开发2017面经 暑期实习+秋招 ,附备战总结 婴幼儿喂养与营养指南是什么? C能像matlab一样画图吗?? 如何科学的喂养孩子? 想要进行母乳喂养,有什么必知事项呢? 婴幼儿喂养有哪些原则? C什么绘图软件 4个月宝宝吃多少毫升奶粉算正常 婴幼儿怎样平衡膳食 关于5个月孩子的辅食,吃什么食物好? 以C开头的作图软件,除CAD 2020年高级育婴师易考考点:婴儿日常喂养指导 乘法口诀斜着看发现什么 网易云音乐领取礼品卡会自动关注吗 初次为宝宝喂养辅食的时候,要注意什么问题? 乘法口诀表横,竖,着看各有什么特点 乘法口诀竖着斜着横着怎么? 宝宝四个月母乳喂养时间表 6到12月龄婴儿喂养指南包括 12月龄到18月龄宝宝喂养指南 没有装箱单可以退货成功吗吗 如何用c中的画图工具? 怎么注册登录啊 请问有什么可以c语言图形化编程的软件 教c语言的郝斌老师是用什么软件在桌面上画图与写字的。知道的说一下,谢谢! 如何用c语言编写图形操作的软件呢?? .Windows中的“画图”软件属于( )。A.系统软件B.应用软件C.工具软件D.自由软件 怎么样登陆注册 蝗虫与蚂蚱一样吗? 电子万能试验机怎么做环刚度 HDPE双壁波纹管环刚度测定中直径变化0.03d,指的是内径还是外径? HDPE双壁波纹管检测项目有哪些? 检测环刚度是不是要进烘箱 请问用万能试验机测环刚度,需要做那些准备,比如内径长度的测量和实验数据应该做怎样的修改 具有初级以上工程技术(或经济)职称是指什么 双壁波纹管检测项目有哪些? 华为消费者服务热线950800 工程初级职称的申报条件是什么? 环刚度如何书写 HDPE双壁波纹管要检测哪几个项目,以及取多少米检测 JT&#47;T 529-2004预应力混凝土桥梁用塑料波纹管中,扁平管如何检测环刚度