#include "drawtool.h"
double object[NUM_SIDES][5];
void show_help()
{register int i,j;
char far *ptr=(char far *)0xB8000000;
char far *temp;
unsigned char buf[200][80];
temp=ptr;
for(i=0;i<200;i++)
for(j=0;j<80;j+=2){
buf[i][j]=*temp;
buf[i][j+1]=*(temp+8192);
*temp=0;*(temp+8192)=0;
temp++;
}
goto_xy(0,0);
printf("\n\n*********** HELP INFORMATION **********\n\n");
printf("<F3>show help information\n\n");
printf("<A>ratote object('r'and'l'to turn )\n\n");
printf("<UP|DOWN>move cursor up or down \n\n");
printf("<RIGHT>move cursor right \n\n");
printf("<LEFT>move cursor left \n\n");
printf("<HOME>up left <END>down left\n\n");
printf("<PGUP>up right <PGDN>down right\n\n");
printf("<O>reset flag(you can draw if on_flag)\n\n\n");
printf(" Press any key to continuce...... \n\n");
readkey();
printf("\n*********** HELP INFORMATION **********\n\n");
printf("<P> choice palette <Q>exit program\n\n");
printf("<0,1,2,3,4>choice color <B> draw box\n\n");
printf("<M>move picture <F1>speed down \n\n");
printf("<X>copy picture <F2>speed up\n\n");
printf("<H> draw fill circle <S> save file\n\n");
printf("<F> draw fill box <R> load file\n\n");
printf("<ENTER>define the point <C> draw circle\n\n");
printf("<D>define object <L> draw line\n\n\n");
printf(" Press any key to exit help.....\n\n");
readkey();
temp=ptr;
for(i=0;i<200;i++)
for(j=0;j<80;j+=2){
*temp=buf[i][j];
*(temp+8192)=buf[i][j+1];
temp++;
}
}
void load_picture(char fname[80])
{
FILE *fp;
register int i,j;
char far *ptr=(char far *)0xB8000000;
char far *temp;
unsigned char buf[14][80];
temp=ptr;
for(i=0;i<14;i++)
for(j=0;j<80;j+=2){
buf[i][j]=*temp;
buf[i][j+1]=*(temp+8192);
*temp=0;*(temp+8192)=0;
temp++;
}
goto_xy(0,0);
printf("loading picture.....");
if((fp=fopen(fname,"rb"))==NULL){
goto_xy(0,0);
printf("cannot open file");
temp=ptr;
for(i=0;i<14;i++)
for(j=0;j<80;j+=2){
*temp=buf[i][j];
*(temp+8192)=buf[i][j+1];
temp++;
}
return;
}
for(i=0;i<8192;i++){
*ptr=getc(fp);
*(ptr+8192)=getc(fp);
ptr++;
}
fclose(fp);
}
main(int argc,char *argv[])
{union k{
char c[2];
int i;
}key;
int x=10,y=10,cc=2,on_flag=1,pal_num=1;
int startx=1,starty=0,endx=0,endy=0,first_point=1;
int inc=1,sides=0;
mode(4);
palette(0);
if(argc==2) load_picture(argv[1]);
xhairs(x,y);
do{
key.i=readkey();
xhairs(x,y);
if(!key.c[0])
switch(key.c[1]){
case 72:if(on_flag)line(x,y,x,y-inc,cc); y-=inc;break;/*上*/
case 80:if(on_flag)line(x,y,x,y+inc,cc); y+=inc;break;/*下*/
case 75:if(on_flag)line(x,y,x-inc,y,cc); x-=inc;break;/*左*/
case 77:if(on_flag)line(x,y,x+inc,y,cc); x+=inc;break;/*右*/
case 71:if(on_flag)line(x,y,x-inc,y-inc,cc); y-=inc;x-=inc;break;/*左上*/
case 73:if(on_flag)line(x,y,x+inc,y-inc,cc); y-=inc;x+=inc;break;/*右上*/
case 79:if(on_flag)line(x,y,x-inc,y+inc,cc); x-=inc;y+=inc;break;/*左下*/
case 81:if(on_flag)line(x,y,x+inc,y+inc,cc); x+=inc;y+=inc;break;/*右上*/
case 59:inc=1; break; /*F1减速*/
case 60:inc=5; break; /*F2加速*/
case 61:show_help(); /*F3显示帮助信息*/
}
else
switch(tolower(key.c[0])) {
case 'o':on_flag=!on_flag;break;
case '1':cc=1;break;
case '2':cc=2;break;
case '3':cc=3;break;
case '0':cc=0;break;
case 'b':box(startx,starty,endx,endy,cc);break;
case 'f':fill_box(startx,starty,endx,endy,cc);break;
case 'l':line(startx,starty,endx,endy,cc);break;
case 'c':circle(startx,starty,endy-starty,cc);break;
case 'h':fill_circle(startx,starty,endy-starty,cc);break;
case 's':save_pic();break;
case 'r':load_pic();break;
case 'm':move(startx,starty,endx,endy,x,y);break;
case 'x':copy(startx,starty,endx,endy,x,y);break;
case 'd':sides=define_object(object,x,y);break;
case 'a':rotate_object(object,0.05,x,y,sides);break;
case '\r':if(first_point){startx=x,starty=y;}
else{endx=x,endy=y;}
first_point=!first_point;break;
case 'p':pal_num=pal_num==1 ? 2:1;palette(pal_num);
}
xhairs(x,y);
}while(key.c[0]!='q');
mode(3);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
2005081114190019594.rar (3个子文件)
DOS视频方式4的画图
basic.h 2KB
Q-DRAW.C 4KB
DRAWTOOL.H 12KB
共 3 条
- 1
资源评论
普通网友
- 粉丝: 882
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于keras+fasterRCNN,在VOC格式的口罩数据集上训练,检测人群中有无戴口罩python源码+模型
- push_version
- 软件自制图像批量压缩工具
- 基于深度学习的抗梯度噪声的缺陷检测器python源码+文档说明+模型的预训练
- 基于python+pytorch+mysql实现停车场车牌识别管理系统源码+文档说明
- 基于QT+MySQl+OpenCV车牌识别搭建停车场管理系统C++源码+文档说明+界面展示
- 基于深度学习的停车场收费系统-车牌识别模块python源码+文档说明+博客教学
- 空白.pages
- 基于Java+Springboot+vue的智能停车场管理系统(源代码+数据库+9000字论文) 本项目前后端不分离+部署教程
- 基于SSM写的停车场管理系统,加入了车牌识别和数据分析+源码+文档说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功