该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

union REGS regs;

int X_max,Y_max,x_max,y_max;

void Initgr(void) /*屏幕初始化成图形模式*/

{int w,h,grdriver=DETECT,grmode;

initgraph(&grdriver,&grmode,"");/*在双引号中可加你tc放的路径,但要在tc里有EGAVGA.BGI这个来初始图形*/

if(graphresult())/*若调用不成功,退出*/

{printf("\n 在双引号中可加你tc放的路径,但要在tc里有EGAVGA.BGI这个来初始图形.\n");

exit(1);

}

X_max=getmaxx();/*求横向象点坐标数*/

Y_max=getmaxy();/*求纵向象点坐标数*/

getaspecatio(&w,&h);/*求纵横比*/

x_max=1000; /*设置屏幕坐标的宽度*/

y_max=x_max*(float)Y_max*h/((float)X_max*w);

}

int Msinit(int Xlo,int Xhi,int Ylo,int Yhi)/*鼠标初始化*/

{int retcode;

regs.x.ax=0;/*初始化鼠标*/

int86(0x33,&regs,&regs);

retcode=regs.x.ax;

if(retcode==0) return 0;

regs.x.ax=7;/*设置鼠标X方向的移动范围*/

regs.x.cx=Xlo;

regs.x.dx=Xhi;

int86(0x33,&regs,&regs);

regs.x.ax=8;/*设置鼠标Y方向的移动范围*/

regs.x.cx=Ylo;

regs.x.dx=Yhi;

int86(0x33,&regs,&regs);

regs.x.ax=15;/*设置mickey与象素的比,这各会影响鼠标移动速度*/

regs.x.cx=(int)(x_max/X_max);

regs.x.dx=(int)(y_max/Y_max);

int86(0x33,&regs,&regs);

return retcode;

}

int Msread(int *px,int *py,int *pbuttons)/*读鼠标位置及状态*/

{static int x0=320,y0=240,but0=0;

int xnew,ynew,ch;

do{

if(kbhit()){

ch=getch();

if(ch==13){

*pbuttons=1;

return -1;

}

else return ch; /*返回键盘输入*/

}

regs.x.ax=3; /*调用功能3,读鼠标位置及状态*/

int86(0x33,&regs,&regs);

xnew=regs.x.cx;/*返回鼠标当前的位置的X坐标*/

ynew=regs.x.dx;/*返回鼠标当前的位置的Y坐标*/

*pbuttons=regs.x.bx;/*返回鼠标当前的状态*/

}while(xnew==x0&&ynew==y0&&*pbuttons==but0);

/*当鼠标状态改变或位置改变终止循环*/

but0=*pbuttons;/*将鼠标状态保存到静态变量中*/

x0=xnew;y0=ynew;/*将鼠标位置保存到静态变量中*/

*px=xnew;*py=(int)(y_max-ynew);

return -1;

}

int Xpixel(int x)/*由象素坐标变换为屏幕坐标*/

{ return (int)((long)X_max*x/x_max);}

int Ypixel(int y)

{ return Y_max-(int)((long)Y_max*y/y_max);}

void Cursor(int x,int y) /*显示十字光标*/

{int X=Xpixel(x),Y=Ypixel(y),color;

char *s=" \0";

line(X-8,Y,X-3,Y);

line(X,Y-8,X,Y-4);

line(X-3,Y,X-8,Y);

line(X,Y-4,X,Y-8);

color=getcolor();

setcolor(BLACK);

outtextxy(X_max-100,10,s);/*删除前次显示值*/

sprintf(s,"%d,%d",x,y);

setcolor(WHITE);

outtextxy(X_max-100,10,s);/*在屏幕右上角显示当前光标的坐标*/

setcolor(color);

}

main()

{int buttons,X,Y,x,y,a,b;

char i;

Initgr();/*初始化图形屏幕*/

setcolor(EGA_LIGHTRED);/*设置屏幕前景色*/

line(1,1,X_max-1,1); /*在屏幕四周画一矩形*/

line(1,1,1,Y_max-1);

line(X_max-1,1,X_max-1,Y_max-1);

line(1,Y_max-1,X_max-1,Y_max-1);

setcolor(EGA_WHITE);

printf("\n 按鼠标右键终止程序\n");

printf(" 然后按任意键退出");

setwritemode(XOR_PUT);/*设置屏幕输出模式*/

Msinit(0,(int)x_max,0,(int)y_max);/*初始化鼠标*/

a=x_max;b=y_max;

x=0;

Cursor(a,b); /*在a=x_max;b=y_max;处画指针*/

while(x!=2)

{

Msread(&X,&Y,&x);

Cursor(a,b); /*删除之前的鼠标,因为屏幕输出模式的关系*/

if(x==1){

a=(int)(X*1.0/x_max*X_max);

b=(int)((y_max-Y)*1.0/y_max*Y_max);

circle(a,b,1); } /*画点*/

Cursor(X,Y);

a=X;b=Y;

}

Cursor(X,Y);/*再调用一次把原来的指针削掉*/

getch();

closegraph();}

如何画c语言箭头鼠标,简单的鼠标绘图程序相关推荐

  1. C语言入门非常简单!神级程序员五分钟带你入门!这就是学习效率

    很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以加小编弄的一个 ...

  2. c语言定时开关程序,C语言写的简单的定时关机程序

    写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include #include #include int main() { ...

  3. c语言远控,远控鼠标!C语言简单编程:整舍友必备+附送实例源码!

    远控鼠标!C语言简单编程:整舍友必备+附送实例源码!-1.jpg (10.71 KB, 下载次数: 0) 2018-10-11 05:24 上传 关注<一碳科技>有更多干货等着你哦! 远控 ...

  4. splitpane如何设置竖条的宽度_如何用 CSS 画三角形和箭头

    三角形和箭头这两个图标在网页中经常会用到,例如:下拉选择框.排序.返回到上一页.导航条,分页都会用到三角形或者箭头,当然是用图片的方式的确可以实现这一样式,但是是用图片如果调整颜色那就比较困难了,除非 ...

  5. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  6. 【原】简单的鼠标切换左右键(java版)

    简单的鼠标切换左右键(java版) 0. 写在最前面 客户需要一个能切换左右键的小功能满足使用需要. 具体需要如下: 我需要一个独立运行的窗口,在其中输入数字x,按下"转换"按钮后 ...

  7. 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...

    下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...

  8. 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

    语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...

  9. R语言grafify包简单、快速绘制19个漂亮的统计图实战

    R语言grafify包简单.快速绘制19个漂亮的统计图实战 目录 R语言grafify包简单.快速绘制19个漂亮的统计图实战 #grafify是什么?

  10. c语言游戏总出bug,C语言 编写的简单移动游戏出现bug?_编程_游戏设计_C语言_天涯问答_天涯社区...

    C语言 编写的简单移动游戏出现bug? 第一次按上下左右没什么问题,之后就会卡住..不知道出了什么错 源码如下:(用vc++的win32 console程序编写) #include #include ...

最新文章

  1. 预告 · Flutter Live 2018 全球同步直播
  2. python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame
  3. php simpletest 测试数据库,在PHP中使用SimpleTest进行单元测试
  4. 全局和本地事务(从理论上)
  5. [mybatis]Mapper XML Files_获取自增主键的值
  6. SAP License:SAP 清帐介绍
  7. linux ftp 150 无响应,FTP遇到150无响应
  8. java io流不关闭_Java IO流关闭问题的深入研究
  9. win10无法安装.net framework 3.5 解决方案/无法安装NetFx3解决方案
  10. qlv格式转Mp4格式
  11. AUTO CAD 2020许可证过期(许可证超时),亲测有效,已中招
  12. 我们爱分享----200多个js技巧代码
  13. 数据库设计——将用户名和密码与用户其他信息分成两张表
  14. 虚幻动画 | 让角色动起来,实现一个简易的走、跑、跳状态机
  15. 计算机农业应用答案,东北农业大学计算机应用技术网上作业及答案.doc
  16. ContentSizeFitter 无法感知文本内容高度
  17. java的对象存储在哪里?
  18. Win7 添加grub引导Linux最简单方法
  19. 外国程序员应该访问的最佳网站
  20. 如何画圆角矩形 c代码

热门文章

  1. Spring的注解和装配实现IOC
  2. Java中foreach 的用法以及注意事项
  3. pcl_viewer 常用实用指令
  4. 1036 跟奥巴马一起编程
  5. karto探秘之open_karto 第二章 --- 参数解析
  6. eigen与opencv矩阵转换,eigen与matlab函数比照
  7. tensorflow学习笔记(5)卷积神经网络(CNN)
  8. Python 大文件处理
  9. H5与客户端交互的方式有哪些? 怎么做?
  10. 【转】C#正则表达式教程和示例