- 浏览: 103129 次
-
文章分类
- 全部博客 (56)
- AS3 基础 (13)
- AS3 Loading (3)
- AS3 XML (1)
- AS3 数组 (10)
- AS3 包 (0)
- AS3 声音 (0)
- AS3 时间日期 (0)
- AS3 鼠标 (1)
- AS3 组件 (0)
- AS3 滤镜 (2)
- AS3 特效 (0)
- AS3 与后台 (0)
- AS3 影片控制 (3)
- AS3 算法 (2)
- AS3 素材 (0)
- AS3 书籍 (0)
- AS3 实例 (0)
- AS3 其他 (2)
- 未处理 (1)
- Flex 组件 (0)
- Flex 与ASP.NET (0)
- delphi 基础 (11)
- SQL 基础 (3)
- Delphi combox (1)
- 电脑基础 (0)
- 吃穿住行 (0)
- delphi 数据库 (0)
- SQL 实例代码 (0)
- delphi 报错 (1)
- delphi 函数 (1)
- as3 个人作品 (0)
最新评论
-
hanker888:
眼睛都看花了,能否推荐一下目前用得最多的?
常用flash引擎和框架
无论刚入门的还是有一定AS3编程基础的,对Math类应该都不陌生了,但Math类的性能又知多少呢?请看下文吧。
1、Math.floor()
通俗的讲这是一个取整函数。
其实官方解释是
返回由参数 val 指定的数字或表达式的下限值。 下限值是小于等于指定数字或表达式的最接近的整数。
性能测试:
var num:Number = Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
Math.floor(num);
}
trace(getTimer() - time);
// 结果:1865
var num:Number = Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
int(num);
}
trace(getTimer() - time);
// 结果:69
结果很明显,int比floor快,可能大家就要说了,那Adobe傻X写个这样接口干什么?其实这就是我想说的对于floor的使用误区。
仔细看官方解释,其实floor不是一个真正我们所理解的取整函数,他是去找最接近自己,且比自己小或者等于的整数,那这是什么意思呢?
var num:Number = - Math.PI;
trace(int(num));
trace(Math.floor(num));
// 结果1:-3
// 结果2:-4
这个例子很明确表示,当目标数字是负数时,int和floor所得出的结果不一样。
int()的官方解释
将给定数字值转换成整数值。 从小数点处截断十进制值。
相信看到这,你已经很明白了。
但是实际上,如果你这样去使用int(),跟floor输出的结果相同:
var num:Number = - Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
if(num < 0){
int(num) - 1;
}else{
int(num);
}
}
trace(getTimer() - time);
// 结果:132
2、Math.pow()
对于这个方法,我也不知道说什么好了,先看性能测试吧:
var a:int = 3;
var b:int = 4;
var c:int = 5;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
c * c == a * a + b * b;
}
trace(getTimer() - time);
// 结果:95
var a:int = 3;
var b:int = 4;
var c:int = 5;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
Math.pow(c,2) == Math.pow(a,2) + Math.pow(b,2);
}
trace(getTimer() - time);
// 结果:7999
勾三股四弦五大家应该比较多,但是用"*"乘法运算和pow的性能比较那是非常明显啊。
难道大家又想说Adobe傻逼了?这儿我为它平反吧。
var num:Number = Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
Math.pow(num,10000);
}
trace(getTimer() - time);
// 结果:6682
先不说"*"乘法运算比pow快,就上面这段你能把它换算成使用"*"乘法运算吗?
而且pow其实是可以这样用的:(数学学得好都知道开方其实是可以转换成乘方来算的)
trace(Math.pow(27,1/3));
trace(Math.pow(256,1/4));
trace(Math.pow(3125,1/5));
而开方函数Adobe只提供了sqrt一个开平方根的接口(经测试Math.sqrt(9)比Math.pow(9,1/2)快,但开立方等就得靠pow了)。
3、Math.round()
这个方法跟floor一样的,先看性能测试:
var num:int = Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
Math.round(num);
}
trace(getTimer() - time);
// 结果:1931
var num:int = Math.PI;
var length:int = 10000000;
var time:int = getTimer();
for(var i:int = 0; i < length; i ++){
int(num + 0.5)
}
trace(getTimer() - time);
// 结果:68
四舍五入其实加个0.5在取整,这样也是可以的,只不过用这个算法,存在跟第一个同样的问题,当目标数值为负时,两种方式结果不一样,需要加个判断,目标数值为负就把结果-1。
<script src="/ggao/news_js/MyClass_it.js"></script><script type="text/javascript"></script><script src="http://cpro.baidu.com/cpro/ui/f.js" type="text/javascript"></script><script src="http://pos.baidu.com/ecom?di=u249277&tm=BAIDU_CPRO_SETJSONADSLOT&fn=BAIDU_CPRO_SETJSONADSLOT&baidu_id=" type="text/javascript"></script>
发表评论
-
如何动态命名实例
2011-11-30 19:17 1942for(var i:int=1;i<=maxX;i++ ... -
AS3中Object与Dictionary的区别
2011-11-24 18:12 785AS3中的Dictionary类(flash.utils. ... -
常用flash引擎和框架
2011-11-17 09:32 8591官方在线帮助(没标英文的都是中文) 用于 Adobe Flas ... -
AS3中的TWEEN类
2011-11-21 20:13 777在以往用2做些网站类的应用的时候,经常由一个事件激活若干个t ... -
AS3中的TWEEN类
2011-11-21 20:13 1060在以往用2做些网站类的应用的时候,经常由一个事件激活若干个 ... -
AS3.0中Tween类的基础
2011-11-20 16:58 884写个关于ActionScript3.0 中的Tween类的小教 ... -
学习flash动画必须掌的知识
2011-11-20 16:58 733动作动画:有初末两个关键状态,不改变对象本身的形状,对象必须是 ... -
SWF自适应布局技巧
2011-11-16 18:54 1587想让你的Flash应用在诸多用户面前都有一个比较好的页面展现, ... -
AS3一些不太常见的代码写法
2011-11-16 18:54 740今天收集来了一些高手们的代码写法,可以看成是某些语法的简写 ... -
AS3获取当前URL地址以及防盗链
2011-11-16 18:54 1038前阵子弄了个小游戏,然后想着像以前那样加个防盗链的功能(其 ... -
AS3的深度管理及排序
2011-11-15 19:35 756AS3的深度管理及排序 说到深度管理,不由得想起了那万恶 ... -
Flash应用之百宝箱
2011-11-15 17:52 841Flash应用之百宝箱 说起 ...
相关推荐
在学习这些函数的源码时,我们不仅能够深入了解数值计算的精度控制、性能优化技巧,还能认识到处理边界条件和异常情况的重要性。例如,对于`sqrt`函数,需要考虑到输入为负数时的异常处理,而对于`pow`函数,则需要...
标题提到的"IQ-math函数库"是一个专门针对数字信号处理设计的数学库,它包含了各种高性能的数学运算,如复数运算、对数、指数、平方根、幂运算以及快速傅里叶变换(FFT)等。这些函数经过了高度优化,能够在TI的C28x ...
7. **性能和精度**:Apache Commons Math库采用高效的数值方法,确保计算的稳定性和精度。这在处理大规模或高精度计算时显得尤为重要。 8. **API设计**:库的API设计友好,易于理解和使用,使得开发人员能够快速...
这些函数的设计旨在提高性能,同时兼容跨平台的Delphi/Kylix运行时库。 Math单元的函数设计参考了多部权威著作,如P.J. Plauger的《标准C程序库》、W.J. Cody和W. Waite的《软件手册初步》、Namir Shammas的《C/C++...
math.NET 是一个开源项目,为C#和.NET开发者提供了一个强大的数学函数库,极大地扩展了.NET框架中的数学计算能力。这个资源包,名为"mathnet-numerics-master",包含了math.NET的源代码,允许用户深入理解其内部实现...
10. **比较操作**: `Math.absCompare(x, y)`可能会在JavaMath项目中提供,这是一个自定义的比较函数,返回x与y的绝对值之差,用于无符号比较。 JavaMath项目通过使用Eclipse Luna,可能提供了一种更友好的方式来...
全站性能最强的函数计算器; 有着恐怖高精度(一个屏幕描15360个点)和惊人的算力; 支持方程不等式、精度设置、极坐标等高级设置。 此后仍有作品或有趣游戏、爆笑作品,请关注原作者,且点赞加收藏,记得推荐好友...
CUDA Math API是NVIDIA为CUDA编程环境提供的一组数学函数库,主要针对高性能计算和GPU并行计算场景。CUDA(Compute Unified Device Architecture)是NVIDIA推出的一种编程模型,它允许开发者利用图形处理器(GPU)的...
下面将详细介绍PHP内置Math函数的效率问题,并提供一些优化性能的方法。 首先,文章通过两个for循环的代码示例来说明PHP Math函数(如pow函数)与原生代码执行效率上的差异。通过对比执行时间,我们可以看到使用...
这个版本修复了一些已知问题,优化了性能,并添加了新的功能,确保了库的稳定性和兼容性。 五、文档与支持 Apache Commons Math3 提供详尽的API文档和用户指南,开发者可以通过阅读文档了解每个类和方法的具体用法...
`eval` 函数可以将字符串转化为可执行的代码,但因为它存在安全风险和性能问题,通常不推荐使用。例如: ```javascript setTimeout(eval("fn()"), 1000); ``` 5. 清除定时器 `clearTimeout` 和 `clearInterval` ...
在Rust编程语言中,`rust-fast-math`是一个库,旨在提供比标准库中实现的数学函数更快的替代品。这个库利用了LLVM编译器基础设施的优化能力,以提升性能,尤其是在科学计算、游戏开发和其他对计算速度有高要求的领域...
SageMath提供了丰富的数据结构,如列表、字典、集合等,以及高级算法,如迭代器、性能分析工具,方便用户进行数据分析与算法设计。 ##### 线性代数与数论 SageMath在处理线性代数问题方面表现优异,包括矩阵运算、...
飞思卡尔XS128函数库是为全国智能车大赛设计的专业...理解并熟练运用这个库,对于优化智能车性能、提升比赛竞争力至关重要。因此,建议开发者不仅要掌握基本的MCU知识,还要深入学习这个函数库,以便在比赛中取得优势。
同时,C# 8.0及更高版本引入了异步函数,通过`async`和`await`关键字,可以编写非阻塞式的异步代码,提高应用程序的性能。 总之,理解和熟练掌握C# .NET中的内置函数和自定义函数是成为一名优秀开发者的关键步骤。...
人工智能项目资料- 【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有...
`tommath.c`包含了库的实现,包括所有大整数操作的具体算法,而`tommath.h`则提供了头文件,定义了数据结构和函数原型,供用户在自己的代码中引用。通过包含这个头文件,开发者可以轻松地在项目中使用tommath库提供...
- **性能分析**:内置的性能分析工具帮助优化代码。 #### 八、分布式计算 对于大型计算任务,SageMath还支持分布式计算: - **概述**:介绍分布式计算的基本概念。 - **快速入门**:简单的示例演示如何设置并行计算...
《JavaScript中的UUID生成:深入理解Math.uuid.js》 在JavaScript编程中,UUID...在理解和使用Math.uuid.js时,我们应关注其生成UUID的唯一性、性能以及在特定场景下的适用性,以便更好地利用这个工具解决实际问题。