今天有在做一个FLASH,本身并没有什么难的地方,做到某一个效果是需要动态地计算两条线之间的夹角,我猛然发现,我居然把三角函数的知识都退还给了中学老师了。立马百度、谷歌进行恶补,另外又收集了一些AS3中比较常用到的公式以备用。
基本三角函数的计算:
角的正弦值 = 对边 / 斜边
角的余弦值 = 邻边 / 斜边
角的正切值 = 对边 / 邻边
角度制与弧度制的相互转换:
弧度 = 角度 * Math.PI / 180
角度 = 弧度 * 180 / Math.PI
计算两点间距离:
dx = x2 – x1;
dy = y2 – y1;
dist = Math.sqrt(dx*dx + dy*dy);
缓动公式:
sprite.x += (targetX – sprite.x) * easing;//easing为缓动系数变量
sprite.y += (targetY – sprite.y) * easing;
弹性公式:
vx += (targetX – sprite.x) * spring;//spring为弹性系数
vy += (targetY – sprite.y) * spring;
sprite.x += (vx *= friction);//friction为摩擦力
sprite.y += (vy *= friction);
偏移弹性公式:
var dx:Number = sprite.x – fixedX;
var dy:Number = sprite.y – fixedY;
var angle:Number = Math.atan2(dy, dx);
var targetX:Number = fixedX + Math.cos(angle) * springLength;
var targetY:Number = fixedX + Math.sin(angle) * springLength;
向鼠标旋转(或向某点旋转)
dx = mouseX – sprite.x;
dy = mouseY – sprite.y;
sprite.rotation = Math.atan2(dy, dx) * 180 / Math.PI;
波形运动:
public function onEnterFrame1(event:Event):void {
ball.y=centerScale+Math.sin(angle)*range;
angle+=speed;
}
心跳:
public function onEnterFrame1(event:Event):void {
ball.scaleX=centerScale+Math.sin(angle)*range;
ball.scaleY=centerScale+Math.sin(angle)*range;
angle+=speed;
}
圆心旋转:
public function onEnterFrame(event:Event):void {
ball.x=centerX+Math.cos(angle)*radius;
ball.y=centerY+Math.sin(angle)*radius;
angle+=speed;
}
椭圆旋转:
public function onEnterFrame(event:Event):void {
ball.x=centerX+Math.cos(angle)*radiusX;
ball.y=centerY+Math.sin(angle)*radiusY;
angle+=speed;
}
颜色运算得到透明值:
var t:uint=0×77ff8877
var s:uint=0xff000000
var h:uint=t&s
var m:uint=h>>>24
trace(m)
转换为十进制:
trace(hexValue);
十进制转换为十六进制:
decimalValue.toString(16)
颜色提取:
red = color24 >> 16;
green = color24 >> 8 & 0xFF;
blue = color24 & 0xFF;
alpha = color32 >> 24;
red = color32 >> 16 & 0xFF;
green = color32 >> 8 & 0xFF;
blue = color232 & 0xFF;
按位计算得到颜色值:
color24 = red << 16 | green << 8 | blue;
color32 = alpha << 24 | red << 16 | green << 8 | blue;
过控制点的曲线:
// xt, yt是你想要让曲线通过的那一点
// x0, y0 和x2, y2 是曲线的终点
//PS.发现很多人转帖都是直接复制粘贴,也不翻译一下
xt * 2 – (x0 + x2) / 2;
y1 = yt * 2 – (y0 + y2) / 2;
moveTo(x0, y0);
curveTo(x1, y1, x2, y2);
分享到:
相关推荐
在ActionScript 3 (AS3)中,许多复杂的动画效果和动态交互需要用到各种数学公式。以下是一些在AS3中常见的公式及其应用: 1. **基本三角函数**: - 正弦(sin)、余弦(cos)和正切(tan)函数用于计算角度与直角...
在工作和学习中,了解并掌握一些基本的声学公式是至关重要的。 首先,声波在室内传播时会遇到各种界面,如天花板、墙壁等。当声波碰到这些界面时,会发生反射、吸收和透射。透射系数(τ)表示声波穿过界面进入另一...
开发BS软件中常用到 JavaScript 代码,开发BS软件中常用到 JavaScript 代码,开发BS软件中常用到 JavaScript 代码
以下是一些常见的句子结构和表达,它们涵盖了经济、科技、社会等多个领域,帮助你在写作时展现出丰富的词汇量和逻辑思维。 1. "随着经济的繁荣 with the booming of the economy" - 这个表达常用于描述经济发展对...
C#项目中常用到的设计模式
CCNA中常用到的基础语句启动接口,分配ip地址: 以下是引用片段: router> router> enable router# router# configure terminal router(config)# router(config)# interface type port router...
html中常用到的英语.doc
### EXCEL中常用公式集合与数据输入技巧详解 #### 一、EXCEL中常用公式集合 **1. 查找两列数据中相同值对应位置** 公式: `=MATCH(B1,A:A,0)` 此公式用于查找列A中与B1单元格相同的值所在的行号。`MATCH`函数在...
Excel 中常考公式及讲解 本资源摘要信息主要介绍了 Excel 中常用的公式和函数,包括绝对值函数、最大值函数、四舍五入函数、取整函数、求和函数、平均值函数、计数函数、IF 函数、VLOOKUP 函数和 RANK 函数等。 一...
AndroidTestScripts, Android测试中常用到的脚本
计算机二级excel中常考公式及讲解.doc
`YCDefine` 是一个开源项目,专门收集并整理了iOS项目中常用的宏定义,旨在为开发者提供便捷的工具集合,以简化日常开发工作。下面,我们将深入探讨`YCDefine`中可能包含的一些关键知识点。 1. **条件编译...
在计算机二级Excel考试中,掌握常见...以上就是计算机二级Excel中常考的一些公式和函数的详解,理解和熟练运用这些功能对于通过考试和日常数据分析工作都至关重要。记得在实际操作中多加练习,以便更好地掌握这些工具。
整理的一些比表常用的网络协议的相关资料~有协议的结构、原理,还有一些RFC文档。
以下是一些C语言中常用且重要的函数集合,这些函数在编写各种程序时都会频繁使用到。 1. 输入输出函数: - `printf()`:这是标准输出函数,用于将格式化的字符串输出到屏幕或文件。 - `scanf()`:它是标准输入...
本文将深入探讨AD转换后期处理中常用到的几种软件滤波方法。 1. **低通滤波器**:低通滤波器是最基本的滤波类型,主要作用是允许低频信号通过,而衰减高频信号。在AD转换后,如果信号中混有高频噪声,低通滤波器...
有关数据库驱动包提供mysql的。。。 在刚做项目的时候,可能会遇到一些jar包重复导致服务器启动出错的问题。解决上面的问题,以上jar包放心使用,呵呵。
单片机硬件电路设计中常用到的锂电池的标称电压与满电电压各是多少?
3. **absolute value** - 绝对值:一个数的非负值,不考虑正负,如 |5| = 5 和 |-3| = 3。 4. **accuracy** - 准确度:表示测量结果接近真实值的程度。 5. **acute angle** - 锐角:角度在0度到90度之间的角。 6....