使用mouse_msg结构体实现简单图形的橡皮条技术
mouse_msg结构体:用于保存鼠标消息
有关其具体声明和成员介绍及其他键盘鼠标输入函数可参阅
https://xege.org/manual/api/input/index.htm
橡皮条技术(以直线为例):
- 选择第一个线段端点
- 光标移动时从初始化拉出一线段
- 线段随光标移动直到选定第二个端点
下面是运用橡皮条技术绘制直线的代码:
#include <graphics.h>
#include <stdio.h>
mouse_msg msg = {0};void line1(void)
{int flag1=0,x0,y0,x1,y1;for ( ; is_run(); delay_fps(350)) {while(mousemsg()){msg=getmouse();}if(msg.is_down() && flag1==0){flag1=1;x0=msg.x;y0=msg.y;x1=x0;y1=y0;} if(msg.is_move() && flag1==1){ setcolor(BLACK);line(x0,y0,x1,y1);x1=msg.x;y1=msg.y;setcolor(WHITE);line(x0,y0,x1,y1);} if(msg.is_up() && flag1==1){setcolor(BLACK);line(x0,y0,x1,y1);x1=msg.x;y1=msg.y;setcolor(WHITE);line(x0,y0,x1,y1); flag1=0; } if(msg.is_right()){break;}}
}int main()
{initgraph(1200, 1000); line1(); closegraph();return 0;
}
使用mouse_msg结构体实现简单图形的橡皮条技术相关推荐
- C语言结构体实现简单通讯录管理系统
效果如图: 代码及详情如下: #include<stdio.h> #include<string.h> #include<stdlib.h>/*通讯录管理 问题描述 ...
- c 结构体的简单封装1
先看C语言的 借助结构体 struct Person{char name[64];int age; }; void PersonEat(struct Person *p) {printf(" ...
- 【结构体Struct——简单使用】
文章目录 结构体 定义结构体 访问结构体成员 结构体指针 结构体作为函数参数 结构体数组 总结 结构体 在C++中,struct是一种自定义的数据类型,用于将不同类型的变量组合在一起,形成一个逻辑上的 ...
- 03【C语言 趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。
目录 一.指路哦 三.打鱼还是晒网 嘞? 3.1 问题描述 3.2 问题分析 3.3 算法设计 3.4 确定程序框架 3.5 求出指定日期距 1990年1月1日的天数 3.6 完整code 及结果 一 ...
- 用C语言中的结构体实现简单的学生成绩管理系统
#include <stdio.h> #include <stdlib.h> #define N 30 /** 为 struct students定义了一个新的名字 STU 与 ...
- 【 C 】结构体 与 typedef
目录 结构体 定义结构体 访问结构体成员 typedef typedef使用实例 typedef vs #define #define使用实例 结构体 先简单看下结构体的概念与用法: 转载:结构体 C ...
- sizeof运算求结构体大小
首先有几条规则: 1. 结构体的成员相对于结构体的偏移量,是该成员所包含的最大简单类型(指占用内存数)的整数倍(如果该成员本身又是一个结构体,就要递归查找其简单类型,简单类型就是char short ...
- 字符串类型、结构体、共用体、枚举、container宏、内存来源
一.C语言的字符串类型 1.C语言没有原生字符串类型 很多高级语言像java.C#等就有字符串类型,有个String来表示字符串,用法和int这些很像,可以String s1 = "linu ...
- 鸿蒙系统深度解析,深度解析鸿蒙内核最重要的结构体
谁是鸿蒙内核最重要的结构体? 答案一定是:LOS_DL_LIST(双向链表),它长这样. typedef struct LOS_DL_LIST {//双向链表,内核最重要结构体 struct LOS_ ...
最新文章
- linux设备驱动第五篇:驱动中的并发与竟态
- [翻译]应用程序池和应用程序域的区别
- bitmap 转 drawable
- Python使用傅里叶变换调整音频文件音量
- This is Huge! PhysBAM code is going to be released?
- 为什么要对1000000007取模
- 9款极具创意的HTML5/CSS3进度条动画
- 【数据清洗】异常点的理解与处理方法(1)
- jstat命令查看jvm的GC情况 (以Linux为例)
- php怎么调用php语言包,thinkphp里怎么调用语言包
- golang copy-on-write思想应用
- 告别手机自带浏览器,分享2022年好用的手机浏览器
- Kerberos认证模型(c语言实现)
- Python实现摇骰子效果
- python大数据工程师招聘_大数据工程师是做什么的为什么招聘网上薪资都好高啊?...
- thread-specific stroage模式 一个线程一个储物柜
- Android高德地图点击大头针更换大头针图片
- 基于蝴蝶结结构的硅偏振分离器和旋转器的演示
- Python(17)python使用tkinter实现一个简单的CSGO幸运转盘抽奖游戏
- 直播第三方美颜怎么选择?美颜SDK哪家好?