一年前想写一个像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)。

转载于:https://www.cnblogs.com/bbqzsl/p/5573096.html

windows下自制动画层引擎 - 放两个demo相关推荐

  1. windows下apache配置虚拟主机的两个方法

    windows下apache配置虚拟主机方法一: 对httpd.conf进行设置: 1.注释以下三行 #ServerAdmin #ServerName #DocumentRoot 2.去掉mod_pr ...

  2. 实现Windows下Qt扫描U盘的两种方式

    参考网上资源,总结了如下实现Windows下Qt扫描U盘的两种方式:. 方式1: 检测Windows的事件–WM_DEVICECHANGE 缺点:想要检测时,必须发生过一次U盘插拔动作,需要手动&qu ...

  3. windows下tomcat集群配置(两种方法)

    两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...

  4. windows下文件共享以及通过网线在两台Windows电脑之间传数据

    windows下文件共享设置: 1.首先在windows7环境下(windows8与windows10同) 2.点击任务栏右下角网络图标--打开网络和共享中心--更改高级共享设置 3.点击公用网络,启 ...

  5. Windows下Eclipse 安装 SVN 插件的两种方法

    1.菜单操作 2.点击"Add",在弹出的窗口里,输入对应的SVN地址,然后"OK" http://subclipse.tigris.org/update_1. ...

  6. windows下安装whmcs会经常遇到两个问题

    建议事先做好检查工作,检查步骤如下: 一.WHMCS安装时数据库写入错误 原因:mysql数据库开启了严格模式(MySQL Scrict Mode) 解决办法:禁用MySQL Scrict Mode ...

  7. 【django】Windows下安装Redis

    博客园 首页 新随笔 联系 订阅 管理 随笔 - 4  文章 - 0  评论 - 0 Windows下安装Redis 一.Redis简单介绍: Redis是一个Key-value的数据结构存储系统,可 ...

  8. 在windows下安装hadoop

    本博文完全引用于http://blog.csdn.net/nazarite_wen/article/details/34409923.防止引用博文被删除,重新copy一遍. Windows下运行Had ...

  9. Windows下运行Hadoop

    Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个Linux操作系统,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处 ...

最新文章

  1. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
  2. 上海网络推广浅析一个优质的404页面能给网站带来什么优化效果?
  3. 开源自建/托管与商业化自研 Trace,如何选择?
  4. 登录过gnome主题后无法再登录xfce主题
  5. java容器怎么封装的_docker怎么把容器打包成镜像
  6. 网络安全之iptables 实验篇一
  7. Go语言实战 - 网站性能优化第一弹“七牛云存储”
  8. VMware ESXi客户端连接控制台时提示VMRC控制台连接已断开...正在尝试重新连接的解决方法...
  9. greensock是个很不错的类库,故转载了一些关于其中类使用方法的文章。
  10. 教你给视频画面打马赛克
  11. P6615 Kruskal + 构造
  12. java公众号第三方开发平台_微信开放平台之公众号第三方平台开发及全网发布验证...
  13. 网站被攻击的常见形式
  14. 《非线性成长》阅读笔记
  15. wordpress企业站模板
  16. 获取所有打印机,设置默认打印机,获取默认打印机
  17. 余压监控系统在高层民用建筑的应用
  18. 数学建模案例--基于微分方程的酒后驾车问题浅析
  19. 将print打印的内容保存到日志
  20. 柯桥日语培训:语法 | 「あまり 」知识解析

热门文章

  1. UDP socket编程中使用connect
  2. 手写简版spring --9--对象作用域和FactoryBean
  3. C语言再学习 -- 转义字符
  4. EOS声称的每秒百万级的交易速度靠谱么?
  5. keil2c语言使用教程,Keil教程(2)
  6. python array函数_Python numpy.array函数方法的使用
  7. JZOJ 1220. Pla
  8. poj 1006 java_POJ 1006 Biorhythms 数论-(孙子定理)
  9. python中怎么输入角度_在Python中更正两点之间的角度
  10. Qt操作Office的一个实例--口算题生成器制作。