摘要: // jsfunction quicksort(arr) { if (arr.length 0 && lt 0 && ge >= arr[0]})))}# pythondef quicksort(arr): if len(arr) = arr[0]]) -- 《python cookbook》 阅读全文
posted @ 2013-09-17 10:29 __fon123__ 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 角度制和弧度制 生活中通常是用角度度来理解的,代码里都是用弧度制来计算。 角度转弧度:DEG_TO_RAD = Math.PI / 180 弧度装角度:RAD_TO_DEG = 180 / Math.PI 正弦:Math.sin 波形: y轴的值会在-1和1的区间波动,只要我们指定一个范围值,比如50,乘于这个范围值就能得到一个在50~-50间的波形。应用于代码中,实现一个小球按正弦波运动的例子,设定相应的变量: angle: 角度(即x轴的值) range: 范围(半径) speed: 角速度 (x变化的速度)var SinWaveMove = __cl... 阅读全文
posted @ 2013-09-16 17:33 __fon123__ 阅读(1163) 评论(0) 推荐(1) 编辑
摘要: 现在这几篇写的都是比较基础的东西,有过相应开发经验的朋友可直接忽略啦。 计算机模拟的动画都是由很多静态的一连串影像(sprite)在一定帧率(fps)内逐帧播放出来的。 对于js来说,我们可以用提供的定时器(setInterval或setTimeout,两者其实都可以),制造一个逐帧播放的舞台现场(stage),每一帧清空画布后再把所有的精灵全画上去,下一帧再清再画,只要改变精灵的相应属性就能产生动画的效果。所以我们对于精灵(Sprite)类来说,要提供一个画(draw)的方法,一个进入每一帧时(onenter)要执行的方法;对于舞台(stage)对象,就提供往舞台添加和删除精灵(ad... 阅读全文
posted @ 2013-09-08 09:21 __fon123__ 阅读(3794) 评论(0) 推荐(0) 编辑
摘要: 从这一篇开始,就来开始我们的make things move之旅吧 在此之前,要知道ActionScript(AS)的语法和JS是不一样的,AS是相对于JS而言更好的支持了面向对象的特性,所以我们可以自己实现一些简单的工具类,让我们更快速的构建我们的工程。不过我们不用全部实现AS中的东西,我们只用实现最基本的类的构造,类的继承和其他一些实用的工具函数就好了。 其实我还想说的是,我们还是要实现AS的Sprite类和stage,因为这两个东西是实现AS动画最基本的元素,html5 canvas提供的js api还是比较低级的,我们可以简单的封装一下实现AS的sprite 和stage,不过... 阅读全文
posted @ 2013-09-06 22:04 __fon123__ 阅读(2277) 评论(2) 推荐(0) 编辑
摘要: 项目中处理字符串的时候不小心中招的,被这个BUG阴了两次,两次时间相隔1年多,所以打算写个文章做个笔记加强一下记忆,希望还未知道这个BUG的同学免受其害,知道的同学也就当加强一下记忆吧。 String.prototype.split方法的参数支持字符串也支持正则,而在IE6~8(可能更低的IE版本也会有错误,这我就不去测试了)用split切出的数组和遵循W3C标准的浏览器所得到的结果是不一样的,来看看例子: 1.根据字符串切割:var str = " a b c "alert( '('+ str +').split(" ") == 阅读全文
posted @ 2012-11-11 15:58 __fon123__ 阅读(2071) 评论(2) 推荐(0) 编辑
摘要: 今天在QW交流群里看到有同学讨论使数组随机化的问题,其中给出的算法很不错,让我想起了之前自己实现过的不怎么“漂亮”的方法。想想我们有时候在繁忙的写业务代码时只是为了实现其功能,并未花太大心思去思考是否有更好的实现方法。就这个数组问题(随即排序一个数组里的值,返回一个新数组)来说,我以前的实现方法是这样的:function randArr(arr) { var ret = [], obj = {}, i = arr.length, l = i, n; while (--i >= 0) { n = Math.floor( Math.rand... 阅读全文
posted @ 2012-11-07 23:48 __fon123__ 阅读(2052) 评论(3) 推荐(1) 编辑