windows下自制动画层引擎 - 放两个demo
一年前想写一个像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)。
最新文章
- Oracle用法、函数备忘记录
- 红米3 TWRP-3.0.3-RECOVERY-7.1.1中文版 20170101更新修复版
- 【JavaScript】--ajax
- TeamCity实战(1):准备工作
- Redis学习笔记4-Redis配置详解
- 【初级】linux rm 命令详解及使用方法实战
- JS 前端格式化JSON字符串工具
- Piwik 扩展获取客户端IP地址
- STM32学习笔记(十) CAN通讯测试(环回模式)
- spark1.5 scala.collection.mutable.WrappedArray$ofRef cannot be cast to ...解决办法
- 关于网络爬虫项目的项目建议(NABCD)
- 列出man手册所有函数的方法
- 【CF】174 Div.1 B Cow Program
- Linux 下编写服务器程序时关于Address already in use 的小错误
- C语言程序设计预备作业。
- unity C#更改系统默认鼠标指针
- Shell脚本学习 - 运算符
- Cmake find_package 需要指定具体的so
- Asp.Net MVC3.0中防止跨站的POST
- Spring的Assert工具类的用法