JavaScript实现ZLOGO: 界面改进与速度可调
在线演示地址: http://codeinchinese.com/%E5%9C%883/%E5%9C%883.html
源码仍在: program-in-chinese/quan3
主要功能改进是在界面可以选择速度. 其他界面布局改进有:
- 在ipad横屏下显示正常(1024x768)
- (前文问题1) 改正了有些浏览器"蚂蚁"对不准的问题(在火狐, Opera, Safari下测试)
- 加大字体和按钮
待解决问题
蚂蚁走位有偏移, 速度越快越明显 · Issue #9 · program-in-chinese/quan3 上面视频可以看到最后蚂蚁没有回到原点. 经测试貌似与速度有关, 尚未确定原因.
避免O(n^2)的绘制过程 · Issue #8 · program-in-chinese/quan3 上面视频可见越到后面行进越慢, 应该与每帧绘制线段数逐渐增加有关. 上面例子最后一帧绘制的总线段数有7200段.
避免在绘制每帧时重置背景色 · Issue #10 · program-in-chinese/quan3 在ipad下测试感觉蚂蚁行进有卡顿感, 不确定是否由于当前每帧都重置背景色. 应该只需在重新运行时再清理整个画板.
[继续改进] 添加方向指示 · Issue #3 · program-in-chinese/quan3 还需:
- 更雅致点的图标
- 在初始状态(白板)时显示图标默认状态(方向/位置)
- 在界面提供选项, 以开/关图标显示
部分p5js API继续汉化, 如line, background · Issue #11 · program-in-chinese/quan3
2019-01-20
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
[日常]mov文件转换为gif
因为需要将之前mac下用QuickTime录屏生成的文件(mov格式)转换成gif文件, 便于传到某些博客平台, 于是找到了这个转换工具, 已将原代码的命名中文化并简化. Ruby和视频转换都是新手, 请多指教. 之前JavaScript实现ZLOGO: 前进方向和速度有两个mov文件, 下面为转换出的gif: "轮胎":无法粘贴,详见原文:https://zhuanlan.zhihu.com/p/54832362 田字格: 下面是命名中文化后的源码. 注意: 需将mov文件置于media目录下, 并自行修改mov文件名和mov视频大小值. # encoding: utf-8 APP_ROOT = File.dirname(__FILE__) @@mov文件名 = "1214_田字格" class Converter @@mov视频大小 = "1032x542" # 查看mov文件属性 # Default path to ffmpeg installed by homebrew @@ffmpeg = File.join('/', 'usr', 'local', 'bin', 'ffmp...
- 下一篇
JavaScript实现ZLOGO: 性能改进
主攻前文吴烜:JavaScript实现ZLOGO: 界面改进与速度可调的几个性能问题 在线演示: 圈3 源码仍在: program-in-chinese/quan3 之前是在绘制过程中计算每帧需要绘制的线段, 在尝试改进的过程中很快发现问题太多且不易测试. 接着在某早晨"醒悟"到应该而且可以在绘制前计算好每一帧的步进路径表. 不仅可以避免绘制卡顿问题, 还便于测试(因为是纯JS实现, 不需夹杂DOM操作). 于是通过如下递归代码实现了截取指定位置的路径表: // 返回{截取部分: 路径表, 剩余部分: 路径表} // 如果 开始位置 >= 终止位置, 返回{[], 所有} function 截取路径表(路径表, 开始位置, 终止位置) { if (开始位置 >= 终止位置) { return {截取部分: [], 剩余部分: 路径表}; } if (路径表.length == 0) { return {截取部分: [], 剩余部分: []}; } else if (路径表.length == 1) { return 截取路径(路径表[0], 开始位置, 终止位置); } e...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池