网站首页 > 易语言相关 > 图形图像源码 正文
资源介绍:
编程的水平,反应的不仅仅是编程技术,也反映管理水平,也就是对资源的调度能力,我把编程当成是一种科学的资源调度活动。
1、本图形系统采用多任务并行处理模式进行架构,用层次模型数据结构来协调不同任务的运行状态以避免相互冲突。
2、程序启动时,首先进行程序初始化,主要是进行程序配置,如果有用户自定义配置信息,就将其加载,否则就载入默认配置。
3、程序初始化完成后,就将程序的运行控制权交由程序的消息循环机制。消息主要来源于用户对程序支持的设备的操作,由操作系统提供或由程序任务自行发送,用钩子程序获取。主要反是映上用户的界面上。消息可以是操作系统预定义的,也可以是程序自定义的。不支持用户自定义消息。
4、当程序获取到消息后,就将消息交由消息处理方案中心进行集中处理。
5、消息处理方案中心在收到消息后,先查找程序配置数据和流程控制数据,主要是确定以下三点:
(1)是否启动新的任务;
(2)是否继续原有的任务;
(3)是否将收到的消息续续传递下去。
6、如果消息处理方案中心启动了新的程序任务或续续了原来的任务,这个程序任务会去首先会去查找程序配置数据和流程控制数据,以确保程序按用户的要求进行执行,并有可能修改这些控制数据。
7、程序任务在运行的过程中,会根据上述取得的信息,进行相应的数据处理,调用相应的子程序功能,完成用户的特定操作。程序任务的主要工作式式,举例如下:
(1)设置程序的运行控制状态,以便程序再次收到消息时能够正确响应。
(2)调用内存中的任务数据进行运算,将运算结果进行保存或显示给用户。
(3)生成临时辅助绘图数据并进行图形运算,将结果显示给用户以便控制。
(4)将具体的操作过程和单个任务的数据以历史记录保存在内存中,以提供撤消重做功能或操作演示功能。
(5)直接调用其它任务模块,以完成特定的用途。也可以用发送消息的方式,达到间接调用其它任务的目的。
(6)将内存中的数据格式进行转化,保存在外部文件中,或将外部文件中的数据还原为内存中的结构数据。
何为一个任务?一个任务从程序代码上来看,它总是从一个子程序的调用开始的,举例说明如下:
.....任务:在画板上绘制一段直线;
.....启动任务方式:用户通过鼠标单击某子菜单项或某工具条或用键盘录入了相应的命令指令;
.....执行条件:操作系统会将相应的用户操作以消息方式发送到窗口过程,程序的查检机制也判断在当前状态下允许执行这个命令,如果允许执行,检查当前系统是否有其它绘图命令,如果有就结束它,清除由它产生的相应程序数据,如果绘图任务处于空闲状态,就由消息处理中心启动绘制直线任务.如果在执行过程中要设置或禁止某种用户操作,就将其控制信息注册到流程控制信息结构体中,如果有一项操作失败,就不能启动任务.
.....任务执行过程:
..消息处理中心启动绘制直线任务时,此任务处于初始化状态,绘直线任务的流程控制信息为0,首次调用绘直线任务.
..绘直线任务在首次运行时,在提示行输出提示信息:"请单击画板,得到直线第一点";然后置流程控制信息中的绘直线任务的流程控制信息为1.
..用户晌应程序提示,在画板上点击一下,操作系统将点击消息传给窗口过程,程序钩子获得该消息,将该消息传递给消息处理中心.消息处理中心检查发现当前任务中有绘直线任务,并且该消息能被绘直线任务接收,于是就将该消息传递给绘直线任务,其方式是再次运行绘直线任务,并将消息值传递给它.
..绘直线任务收到消息,并且从流程控制信息中查得控制信息为1,于是,就将该画板坐标点转化为用户模型空间的数据,将坐标数据保存在当前任务数据的相应结构体中,绘直线任务将流程控制信息中的数据置为2.然后在提示行输出提示信息:"请单击画板,得到直线第二点".
..当用户在画板上移动鼠标,同上面一样的方法,消息控制中心总会再次运行绘直线任务,绘直线任务处于第三种运行状态,每次移动鼠标时它都会处于这种状态,直到绘直线命令再次收到鼠标单击画板的命令.在绘直线任务处于第三状态时,它就会以前面的第一点为基准,在画板上动态画出一条指向鼠标位置的直线段,这是一条临时直线.
..当用户的鼠标再次在画板上单击,消息处理中心也会再次运行绘直线任务,绘直线任务检查发现流程控制信息为2并且画板也被单击,就将流程控制信息改为0,并将画板单击时鼠标的位置信息转化为模型空间的坐标数据,保存当前任的全部数据为历史数据,将当前直线的数据注册到结果数据中;然后将结果数据中的全部几何图形数据生成相应的画板图像数据,用生成的图像数据覆盖到画板上.然后在提示行输出提示信息:"绘制直线完成".
..置当前绘图命令为空闲状态,到此就全面结束了此次绘图任务_绘制一条直线.
以上为了说明清晰,没有考虑太多的细节问题,实际程序流程是另外一回事情,原理是相通的.
资源作者:
@三叶资源网
资源界面:
资源下载:
- 上一篇: 易语言GDI修改QQ主界面图片源码
- 下一篇: 易语言动态加载提示模块源码
猜你喜欢
- 2024-03-22 bmp;jpg;gif;tiff;png;5种格式互转小程序源码
- 2024-03-19 实现易语言曲线图控件的动态输出,纯源码
- 2024-03-16 用内存画板画折线统计图的例子
- 2024-03-13 等分切图 - PNG切图 - 内存中切割图片源码
- 2024-03-11 动画框简单实现屏幕溶解效果
- 2024-03-10 鼠标轨迹曲线模拟、可后台,贝塞尔曲线、Hermite曲线
- 2024-03-04 画svg图,可转存为字节集,支持多线程不崩溃的方法例子
- 2023-02-19 腾讯微信公众号里面的通用OCR文字识别接口对接源码
- 2023-02-15 易语言纯代码无调用线性动画效果
- 2023-02-09 图片太长滑动图片显示源码
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
已有1位网友发表了看法:
易语言 评论于 [2020-09-08 10:02:30] 回复
易语言cad源代码