红孩儿编辑器的模块设计5
红孩儿编辑器的模块设计5
5.1 矩阵转换模块的设计
16*16点阵 转换成 32*32点阵的逻辑
这就是说把一个点放大成四个点,如果这四点都显示的话,字体形状是相似的。
现在需要让它从粗体变成瘦体一点的。
这四个点的位置如下
1 2
3 4
如果这个点的右方有一个紧相邻的点,这四个点中显示1和2点
如果这个点的右下方有一个紧相邻的点,这四个点中显示 1和4 点
如果这个点的下方有一个紧相邻的点,这四个点中显示1和3点。
如果这个点的左下方有一个紧相邻的点,这四个点中显示2和3点。
5.2 光标定位的模块的设计
光标在箭头键的控制下,可以向上,向下,向左,向右移动,初看没有什么特殊之处。
仔细一想,有不少的边界的条件需要明确设计好。例如如何判断超过了屏幕上的显示区域的边界了。
在超过了边界的情况下,程序如何应对。
在屏幕的宽度为650个像素时,一个字的宽度为32个像素时,650/32 等于 20个字,剩余10个像素,
也就是说,当光标显示在640像素的位置时,我们认为光标达到了边界,也就是本行的行尾了。
光标在第0个像素的位置时,我们认为光标在左边界了。
在删除键的使用使得光标到达了左边界后,再执行向左移动的情况下,光标跳到上一行的右边界处。
在左上角的顶点处时,如果是文件的开头处,对向左移动光标的操作无响应。如果不是文件的开头处
屏幕向上滚动一行,光标再显示在第一行的右边界处。
在空格键等能够让光标向右移动操作,使得光标到达了右边界后,再向右移动时,光标跳到下一行的左边界处。
光标在右下角的顶点处时,如果是文件的结尾处,对向右移动的光标的操作无响应。如果不是文件的结尾处,
屏幕向下滚动一行,光标再显示在最下面的一行的左边界处。
红孩儿编辑器的模块设计5相关推荐
- 用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器
用Tkinter打造自己的Python IDE开发工具(4)利用HP_tk模块设计自己的代码编辑器 HP_tk.py模块是小白量化第二代量化系统中的开发模块.其中HP_tk.py模块是小白量化系统GU ...
- 用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器
用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器 前面我们介绍了在Tkinter中使用exec()函数运行用户程序的方法.exec()采用多线程 ...
- C++ 开发者怒了:这个无用的模块设计最终会害死 C++!
2018 年年底,C++ 标准委员会历史上规模最大的一次会议在美国 San Diego 召开,讨论了哪些特性要加入到 C++20 中.其中,Modules 便是可能进入 C++ 20 的一大重要特性: ...
- 三甲:在线富文本编辑器的架构设计及实践
12月5日, 极客邦(InfoQ)在深圳举办 GMTC 大会,蚂蚁集团语雀编辑器技术同学三甲受邀参加大会并分享<在线富文本编辑器的架构设计及实践>,以下内容是根据现场演讲收集整理. 大家下 ...
- java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2
基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+JSP+sqlserver的Smart系统-题库及试卷 ...
- 客户管理系统之模块设计(十)
3,客户选择模块设计 客户选择模块是用来提供对已实用户的选择,当中左边用一个ListBox控件显示全部已经加入的客户,右边用一个ListBox显示选择的客户.每次最多选择两个客户.然后还须要加入一个P ...
- 常见模块设计--数据字典
常见模块设计--数据字典 DROP TABLE IF EXISTS `dict_data`; CREATE TABLE `dict_data` (`id` int(11) NOT NULL AUTO_ ...
- 开发笔记:掉落系统模块设计思路
本文所讨论的掉落系统是一个游戏中的通用模块,不仅局限于打怪时掉落物品,包括抽卡.开宝箱.任务奖励.活动奖励等功能都可以使用.抽象地说,掉落系统是由给定参数按照特定的算法生成一系列可附加在玩家身上的东西 ...
- HDLBits答案(6)_硬件模块设计的思考方式
硬件模块设计的思考方式 HDLBits链接 基本的逻辑门操作 题目描述1:将输入端口in和输出端口out连接. Solution1: module top_module (input in,outpu ...
- PWM 发生器模块设计
PWM 发生器模块设计 PWM 产生原理可得出以下两个主要电路: 定时器/计数器电路以及输出比较电路. 最终输出 PWM 波的频率计算公式为:
最新文章
- HighChart学习-更新数据data Series与重绘
- 有哪些老鸟程序员知道而新手不知道的小技巧?自我感受
- mysql 储存过程
- Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1问题总结及解决方案...
- android 外文期刊_AndroSimilar: Robust signature for detecting variants of Android malware
- Spark SQL使用window进行统计
- 小程序 canvas 设置 字体 字号加粗
- 思科生成树协议STP/RSTP
- TCP相关面试题总结
- Atitit 常用加密算法 aes des rsa 比较 历史演进 目录 1.1. 常规加密算法如下 Aes 3des des rsa	1 2. 加密算法历史演进 按照出现时间和加密强度 流行
- 如何测试工业以太网线缆(利用FLUKE DSX-8000)?
- 电脑主板各部件详细图解
- c#做一个身份信息查询系统
- R语言ggplot2边框背景去除
- 全容灾、热备份、温归档、智融合,电信运营商的数据保护黄金法则
- 【CXY】常用sql语句 -- mysql
- Sprite的一些有趣的现象
- matlab_颜色矩阵三原色
- 图案设计灵感怎么写_设计的灵感来源
- vim: command not found 绝妙解决方案
热门文章
- 访问页面升级访问_BPC页面访问缓慢无报错
- eclipse php集成包,php-eclipse集成配置(Ecli
- trouble processing xxxx.class: Ill-advised or mistaken usage of a core class (java.* or javax.*)
- 开放式激光振镜+运动控制器(三):振镜矫正
- 系统学习dede标签
- centos 7 | 安装和使用cpan
- seacms海洋cms漏洞
- PS:给图片添加方格
- Pandas 报错:index must be monotonic increasing or decreasing
- easyui label显示不全_Easyui 扩展行显示细节_EasyUI 教程