序
这是篇笔记性质的文章,没多少技术含量。
之前一直很少接触 CSS 动画,前段时间刚好做了个相关活动,实现了包含位移、渐现、一次性效果和循环效果的动画。
效果
可以在这里先看一下最终效果。
继续阅读 »
@keyframes
基本写法是一个开始状态和一个结束状态:
css
@keyframes demo-anim {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
See the Pen QNbBOy by Oliver (@ochukai) on CodePen.
其中 animation-iteration-count: number or infinite; 可以设置循环次数,infinite为无限次
还可以定义的很详细:
```css
@keyframes demo-anim {
from {
transform: translate
继续阅读 »
注意
本文转载自http://nshipster.cn/clang-diagnostics/
概要
诊断结合了逻辑与分析来得出一个结论。这是最纯粹的科学和工程学,也是人类最有力的推理。
more
在医学界,诊断是通过实验室样本做后盾的本能来判断。而对于工业制造,则是通过在统计和方向都等同应用来诊断产品故障。
对于我们开发者来说,我们通过代码通知后续代码的生产,创建了一个在过去半个世纪里呈几何级数发展的技术的正反馈循环。尤其对于我们的 Objective-C 开发者来说,最有效的诊断来自 Clang。
Clang 是 C / Objective-C 的前端的 LLVM 编译器。它对 Objective-C 的语义和语法有
继续阅读 »
延迟绑定
Python闭包函数所引用的外部自由变量是延迟绑定的。
In [2]: def multipliers():
...: return [lambda x: i * x for i in range(4)]
In [3]: print [m(2) for m in multipliers()]
[6, 6, 6, 6]
如以上代码: i是闭包函数引用的外部作用域的自由变量, 只有在内部函数被调用的时候才会搜索变量i的值, 由于循环已结束, i指向最终值3, 所以各函数调用都得到了相同的结果。
解决方法:
1) 生成闭包函数的时候立即绑定(使用函数形参的默认值):
In [5]: def multip
继续阅读 »
算法原理
为什么叫鸡尾酒排序?其实我也不知道,知道的小伙伴请告诉我。
其实它还有很多奇怪的名称,比如双向冒泡排序 (Bidirectional Bubble Sort)、波浪排序 (Ripple Sort)、摇曳排序 (Shuffle Sort)、飞梭排序 (Shuttle Sort) 和欢乐时光排序 (Happy Hour Sort)。本文中就以鸡尾酒排序来称呼它。
鸡尾酒排序是冒泡排序的轻微变形。不同的地方在于,鸡尾酒排序是从低到高然后从高到低来回排序,而冒泡排序则仅从低到高去比较序列里的每个元素。他可比冒泡排序的效率稍微好一点,原因是冒泡排序只从一个方向进行比对(由低到高),每次循环只移动一个项目。
以序列(2,3,4
继续阅读 »
本节实现的是读取视频,并显示视频的每一帧以实现视频的播放。
创建摄像头对象,指向文件
逐帧显示实现视频播放
实现过程
引用
不再赘述,代码如下。
python
import cv2
import numpy
创建视频对象
使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。
python
cap = cv2.VideoCapture("../test.avi")
逐帧显示实现视频播放
在while循环中,利用视频对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。
pyt
继续阅读 »
如果用 D3 来构建一个简单的散点图,我们需要创建一些圆点(circle)来展示你的数据。当你发现 D3 并没有提供内置的方法来同时创建多个 DOM 元素时,也许你会感到惊讶,但是,等等,为什么呢?
more
当然,你可以使用 append 方法来创建单个元素:
js
svg.append("circle")
.attr("cx", d.x)
.attr("cy", d.y)
.attr("r", 2.5);
这仅仅是一个圆点,我们需要的是一系列圆点,每个圆点代表一条数据。当然你可以用 for 循环来创建,但开始之前,请看看下面官方例子中的代码:
js
svg.selectAll("circle")
继续阅读 »
定时任务是非常常见的需求,比如定期的去汇总数据,定期的清除垃圾等。
Java 提供了很多定时任务的方案,下面简单的列举一下。
more
利用 thread 的sleep
新开一个线程,死循环运行,通过 sleep 的达到定时运行的效果。
public static void main(String[] args) {
final long timeInterval = 1000;
Runnable runnable = new Runnable() {
public void run() {
while (true) {
继续阅读 »
这里收藏工作中用到的脚本,也为了防止做重复的搜索工作,同时分享给大家。
more
数组
初始化数组
shell
name = (value1 value2 ... valuen)
$ A=(a b c d)
$ echo ${A[@]} # 输出所有元素
数组去重
shell
$ array=($(awk -vRS=' ' '!a[$1]++' <<< ${array[@]}))
取得数组元素的个数
shell
$ echo ${#A[@]}
取下标
shell
$ echo ${A[1]} # 从1开始
清除元素
shell
$ unset A
$ echo ${A[@]}
循环取元素
shell
$ fo
继续阅读 »
用策略模式实现缓动动画
需求:让小球以各种缓动效果在页面中运动
动画开始前需要记录的:
小球所在原始位置
小球移动的目标位置
动画开始时的时间点
小球运动的时间点
之后,用setInterval创建一个定时器,定时器每19秒循环一次。
//缓动算法,此算法移植于flash
var tween = {
//t:动画已消耗的时间,b:小球原始位置,c:小球目标位置,d:动画持续时间
linear: function(t, b, c, d) {
return c*t/d + b;
},
reseIn: function(t, b, c, d) {
ret
继续阅读 »