一年前想写一个像cocoa那样,可以方便层动画开发的引擎,写着写着又逆向它的QuartzCore.framework,也就是CoreAnimation的底层,已经大半年没有搞windows这个引擎。大体来看,动画简单来说有9要素,矩形区域(x, y, w, h),仿射变换矩阵(translation, rotation, scale),还有就是透明度alpha,除此还必须有线性变化函数。这些在cocoa中构成了最基本的动画,也最常用,通常提交动画一个始态,一个终态,以及时间就OK了。有次序的动画可以用completion进行时间上的顺序组合。到底要怎么设计和实现才能够让编程简便呢。

这几天将大半年前的代码整理了一下,在github上放上两个demo。demo展示一些用引擎写的动画效果,两个demo分别用了不同的方法去融合半透明(windows窗口层的,不是动画引擎层)。由于用的windows窗口的层的方法选用不同,动画引擎层实现时也有不同。当然,作为动画引擎层的容器空间的windows窗口不考虑透明,做的事情就少上不少了。

demo的地址在下面:

https://github.com/bbqz007/xw/tree/master/demo

一年前的构想在这里:构思一个在windows下仿objc基于动画层ui编程的ui引擎

现在在用这个引擎仿效QQ管家加速功能的悬浮小窗口,同时也带动引擎的开发,只有在问题前思考和解决问题当中,开发才能有进展。

当然目前简陋的那一个就是我做的了。

PS:在动画基本要素中,我上面漏了坐标系,在3d动画中这个尤为重要和基础。例如opengl中有MODELVIEW的矩阵模式,切换到对象坐标系,同样我的引擎也要负责完成父层到子层的坐标系切换和子层回到父层的坐标系切换,即使大家都做了矩阵变换(transform)。

啰嗦了半篇,现在才是本篇正题。大家都在悠长渡龙舟小长假,我挨了几个通顶(通宵)用自制的引擎做了这个仿QQ电脑管家加速小火箭的demo。开发过程少不了九曲十八弯,坑坑洼洼的了。本次做demo的过程,理清了不少思路,但也发现有许多思路尚未清晰。引擎本身不是成品,所以许多东西都有待开发,而且还有点像爱迪生试灯丝一样。demo的功能的需要,本身就是一份对引擎功能的需求,做demo就可以清晰发现引擎要做什么,奔着目的再考虑怎么设计,哪些分支继续向前,哪些分支需要更好的替代,哪些分支是走弯了。反过来看,引擎也需要demo来带动开发。引擎就是生产工具,生产工具不用来生产,又怎么知道工具哪里好哪里不足,要怎么去改进。

demo由两部分组成,左侧内存单元,以及右侧流量单元,当然这个只是UI引擎的demo,所以不带任何实质的资源访问功能。本引擎功能主要面向动画,所以展示的功能主要也就仿动画方面的效果。分别是鼠标经过内存单元时的动画组合(立体层次变化,气场,小火箭登场)和鼠标点内存单元触发释放内存的动画组合(火箭发射,内存数量统计,流量单元收起展开)。

demo的地址同样在:https://github.com/bbqz007/xw/tree/master/demo

除了自制动画UI引擎,还有自制mach平台下逆向x64反汇编代码的工具-自制反汇编逆向分析工具 迭代第六版本,欢迎观看。

自制window下core animation引擎 - demo第二弹 - 仿QQ电脑管家加速小火箭的更多相关文章

  1. Core Animation 文档翻译 (第二篇)

    Core Animation 文档翻译 (第二篇) 核心动画基础要素 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反, ...

  2. Core Animation一些Demo总结 (动态切换图片、大转盘、图片折叠、进度条等动画效果)

    前一篇总结了Core Animation的一些基础知识,这一篇主要是Core Animation 的一些应用,涉及到CAShapeLayer.CAReplicatorLayer等图层的知识. 先看效果 ...

  3. ASP.NET Core 快速入门【第二弹-实战篇】

    上篇讲了asp.net core在linux上的环境部署.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).nginx多站点部 ...

  4. 转载:第二弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!每日更新!

    今天一波三折,承受了超出预料的压力和煎熬,最后还是决定继续放出我的更新教程.我想我一没有泄露公司的代码,二没有提供泄露开发工具下载,只是从程序猿角度写了篇开发日志.我已经做好了最坏的准备,就算放弃这份 ...

  5. window下golang使用gRPC入门案例&net core客户端

    gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行. 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪 ...

  6. Core Animation学习总结

    文件夹: The Layer Beneath The Layer Tree(图层树) The Backing Image(寄宿层) Layer Geometry(图层几何学) Visual Effec ...

  7. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

  8. iOS——Core Animation 知识摘抄(三)

    原文地址:http://www.cocoachina.com/ios/20150105/10827.html CAShapeLayer CAShapeLayer是一个通过矢量图形而不是bitmap来绘 ...

  9. Instruments学习之Core Animation学习

    当App发展到一定的规模,性能优化就成为必不可少的一点.但是很多人,又对性能优化很陌生,毕竟平常大多时间都在写业务逻辑,很少关注这个.最近在优化自己的项目,也收集了很多资料,这里先浅谈一下使用Inst ...

随机推荐

  1. StreamWriter 相关知识分享

    在介绍StreamWriter之前,我们首先来了解一下它的父类TextWriter. 一.TextWriter 1.TextWriter的构造函数和常用属性方法 下面是TextWriter的构造函数: ...

  2. centos 7.6修改ssh端口,设置防火墙规则

    一.修改ssh端口 1 使用 root 用户进入 /etc/ssh目录 2 备份ssh配置文件 cp sshd_config sshd_config-bak 3 使用 vim 打开 sshd_conf ...

  3. WebStorm 使用过程中出现的一些问题以及解决方案

    标签: WebStorm 配置 描述: 有关 WebStorm 使用过程中出现的一些问题以及其解决方案的汇总 "unresolved function or method" 问题描 ...

  4. config.xml

    ASP.NET应用程序的配置信息都存放于Web.config配置文件中,Web.config配置文件是基于XML格式的文件类型,由于XML文件的可伸缩性,使得ASP.NET应用配置变得灵活.高效.容易 ...

  5. 5.分析snkrs的Android的DeviceID生产规则

    分析Android的DeviceID生产 前面已经把web端的分析了一些,要想实现其实容易也难,容易是规则很容易,难是时间生成控制很难,我之前大概花了一周时间分析和梳理,然后行为测试,之前我已经讲过c ...

  6. 2019.NET Conf,我们在共同期待

    (一)回顾一个小社区红过的五分钟 不知不觉,距离中国.net社区组织的.net conf只有不到一周的时间,还记得年初在叶伟民老师,潘淳老师和张善友老师的号召下,我们长沙的十几位开发者自发组织起来,拉 ...

  7. anaconda重装jupyter notebook后启动jupyter报错的问题

    问题描述: 由于jupyter出现难以解决的问题,采用重新安装来解决问题,但是重装之后启动jupyter报错ImportError: libsodium.so.23: cannot open shar ...

  8. Chrome插件开发(二)

    作为一个前端开发者,我们经常需要和各种各样的接口打交道,很多时候我们的开发环境的域和接口所在的域是不同的,比如我们本地开发环境运行域是localhost,但接口所在的域是www.xx.com,这个时候 ...

  9. Spring Boot 快速入门 史上最简单

    1.Spring Boot 概述 Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的 ...

  10. 【EmguCV视频教程】VS2017+EmguCV3.4(C# OpenCV)高清入门视频教程

    视频采用VS2017 + EmguCV3.4版本录制,内容类似本人的Python和C++版本,如果需要的朋友可加我咨询,视频共40讲,从按照到读取显示图片,图形预处理,边缘检测,形态学,角点检测,轮廓 ...