利用三角函数实现精彩效果

函数

  一、前言

  运用三角函数完成FLASH效果早已有高手做过,而教程方面呢,看到zjs35大哥的椭圆方程后,我决定还是写点儿什么,因为三角函数实在是在FLASH效果中有神奇的作用,短短几行代码就能完成许多炫的效果.

  本文将浅析一下如何运用三角函数,最后给出两个效果.其中一个我曾经在一个"20行代码大赛"中看到过,不过没有见过源文件.我给出的这个可以说是原创的.

  二、函数解析

  三角函数我们在初中就学过,特别是sin,cos,可以说是最常见的周期函数. 我们所用三角函数作效果,主要也就是这两个函数了.

  其中sin函数的完整形式为:

  Y=A*sin(ψ+ω*x);

  ψ是相位,ω是角速度,ω=2Π/T,T是周期. 根据正弦函数的图像可以知道,X轴上的某一点是周期性地在平衡位置上下作简谐振动,振幅为A,就根据这一点知识我们就可以做出一个简单的弹性球:

  _x+=centerX+A*Math.sin((i++)*Math.PI/180);

  我们进一步想,如果是一横行的小球(或竖行,小球也可以是别的什么),大家都以某一个正弦公式运动,这种周期性的运动岂不就是美的源泉吗? 各个小球之间不同的只是相位而已. 再进一步想,如果不单单是位置的改变,而是透明度,大小,颜色等属性都发生改变,这种"大规模"地周期性改变带来的不是一些很神奇的效果了吗? "有规律即是美",三角函数带来的正是它的这种规律性,周期性,只要我们掌握了它的最基本的部分,就可以发挥想象,造出更多的效果了!
  让我们还是先来看一个例子吧.

  三、实例制作步骤

  这个例子我们不是拿小球来说话了,因为并不只是小球才能使用三角函数,其它的也可以,比如说字体. 下面的这个字体效果就是充分运用了正弦函数公式,效果预览

  可以看到,里面的代码非常简单,关键性的只有一句:

_alpha=_xscale=_yscale=(100-_root.A)+_root.A*Math.sin(n+i*pi);

让我们从头讲起,相信讲完之后,您会对如何使用三角函数有进一步认识.

1.在主场景中新建一个动态文本,命名文本框为"lab",当然,我还把要显示的字符串"欢迎来到闪客帝国,我是xfykzz"作为了嵌入字体.嵌入字体也是用AS完成字体效果的一个重要点,粗讲一下:字体属性右边有一个"字符..."按钮,点击一下,再选中"指定范围",在下边的输入框中把"欢迎来到闪客帝国,我是xfykzz"嵌入,确定即可.至于您打算使用什么字体不要紧,我这里使用的是"方正水柱体简体".

  2.选中该文本,按F8,把它变成一个MC,名称我这里用的是"t",然后在库面板中把链接ID写成"t".具体做法是右键单击库面板中该MC,选中"链接...",在弹出对话框中选中第一和第四项,确定即可.

  3.回到主场景第一帧写代码:

tString="欢迎来到闪客帝国,我是xfykzz";//确定要显示的字符串.len=tString.length;//指定变量len装载字符串长度.pi=2*Math.PI/len;//这里是把圆(2*Math.PI)分成len份,因此每一个字占用一份(在下面会用到),//所有的字就占用了整个圆.这里的圆并不是圆圈,而指的是三角函数的一个周期.A=30;//振幅cenX=50;cenY=100;//中心坐标n=0;//相位改变因子,通过它的改变达到改变整个曲线的目的.m=2500;//变量,来确定三角函数改变快慢的因子.

  
这几行是对变量的定义,为了下面书写和以后修改更方便. 下面可以看到,我们改变的不是位置,而是透明度和大小,在上面注释解释的时候借用了用位置的表达方法而已.继续:

for(var i=0;i

  这几句不用多解释吧?继续:

_root.onEnterFrame=function(){  for(var i=0;i

  前面的我相信都不难理解,这一段是关键,当然啰,也是挺简单的~
onEnterFrame是以帧率执行其中的代码,for循环是对每一个MC执行这一句操作:

_alpha=_xscale=_yscale=(100-_root.A)+_root.A*Math.sin(n+i*pi);

  这表示第i个MC的相位是(n+i*pi),表示处在一个周期内的第i份上,全部字符串为一个周期.n在下面的改变:n+=(_xmouse-cenX)/m; 改变着整个字符串的相位,从而表现出连绵不断的感觉.m上面已经提到是灵敏度因子,m值越小,相同鼠标位置n改变得就越多,字符运动就更剧烈. 其平衡位置是:100-_root.A,可以看到,其振动位置在(100-2*_root.A)到100 .以100为上限,因为我们改变的是透明度和大小.

  4.现在测试一下看看,比用帧动画作出来相同的效果是不是要简单许多呢?

  用三角函数作字体效果也许是最省时省力又最易修改的方式了.您可以再试着改变颜色什么的,肯定会有新的发现!

  实例一源文件下载

  四、实例二

  预览:

  第二个例子我不打算多说了,结构与上面的那一个没有什么区别,所不同的是多了一个改变相位的因子:

Q=Math.PI/(2*len);

  这是产生飘动的原因,前面一大堆的变量您大可不必完全了解,我那样写是为了更易修改.我已经加了注释,不妨一看.

  这里所说的三角函数只是冰山一角而已,您只要发掘一下,肯定会有惊喜的,不一定是正弦函数,正切呢?余弦呢? 不妨一试.

  实例二源文件下载

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字体
, 函数
, 三角 函数
, 效果
, 三角函数
, 相位
一个
利用mfc实现动画效果、css实现三角形、实现精彩人生、楼梯下的三角空间利用、利用一副三角板能画出,以便于您获取更多的相关知识。

时间: 2025-01-21 12:48:44

利用三角函数实现精彩效果的相关文章

android-怎样利用popupwindow 实现如下效果呢?

问题描述 怎样利用popupwindow 实现如下效果呢? 解决方案 这就是简单的效果呀. 1.箭头用图片 2.背景可以用9patch延伸 3.动态增加菜单,添加分割线就行了. 解决方案二: 很简单,利用popwindow的showAsdropdown方法,里面的 view用listview即可 解决方案三: 设置popupwindow锚点为你要显示的相对位置的控件setanchor 解决方案四: 这个就是基本的popupwindow的使用. http://www.cnblogs.com/men

利用php_imagick实现复古效果的方法_php实例

介绍 php_imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能. ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式 的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加

利用Angularjs实现幻灯片效果_AngularJS

前言 Jquery发展至今,幻灯组件已经非常成熟,所以下面小编带大家一起看看利用Angularjs实现幻灯片效果的步骤. npm方式安装 npm install angularjsSlider 使用方法 第一步(引入) require('angularjsSlider')(moduleName);//引入 第二步(参数配置) 类型 说明 data Array  幻灯片图片数据 [{img: "1.jpg",link:'#'}...] timer  Number 幻灯片切换间隔timer

photoshop利用滤镜制作光效效果教程

给各位photoshop软件的使用者们来详细的解析分享一下利用滤镜制作光效效果的教程. 教程分享:               好了,以上的信息就是小编给各位photoshop的这一款软件的使用者们带来的详细的利用滤镜制作光效效果的教程解析分享的全部内容了,各位看到这里的使用者们现在是非常的清楚制作方法了吧,那么各位现在就快去按照教程自己去制作吧.

利用php_imagick实现复古效果的方法

介绍 php_imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能. ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式 的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式.利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小.旋转.锐化.减色或增加

高级:利用Flash制作精彩的迷宫游戏

高级 网页教学网:在以前的教程中我们讲解了利用Flash制作游戏的一些方法,比如碰撞的检测等,在这个教程中我们利用以前学的知识创建一个不错的迷宫游戏!该教程主要是Flash利用材质和遮照创建真实的小球动画的延续,利用创建好的小球滚动动画制作迷宫游戏. 在学习这个教程前请大家查看 利用材质和遮照创建真实的小球动画 教程.教程中所使用的背景请看:利用Photoshop Action打造精美的宇宙星空特效 在这篇教程中没有新的知识,就是利用一个舞台(地图),然后还有一个运动的小球实现的一个小的Flas

利用PPT制作壁灯效果的实例教程

  很多时候我们做ppt都是直接利用网上的素材,但是没有素材的时候这么做呢,今天我们在PPT中来制作壁灯,现在我们来制作一种壁灯效果. 1.先画一个等腰梯形,在菜单栏中选择插入,在插入选项卡中选择图形,找到等腰梯形,在ppt中画出 2.选中等腰梯形,右键点击,选择设置形状格式,填充选中渐变填充,渐变光圈两个,左边选择颜色黄色,右边选择颜色金色 3.与画等腰梯形相同,在菜单栏中选择插入,在插入选项卡中选择图形,找到椭圆形,在ppt中画出,根据等腰梯形上端大小做相应调整.右键点击,选择设置形状格式,

精选利用彩色渐变发光效果国外网站设计实例

在网站设计中使用发光效果是当下的一个流行趋势,它常常可以为一个网站带来一些有趣和漂亮的界面,想要添加一些炫光效果的设计师可以使用Photoshop制作非常有趣的发光效果.尽管之前我们有展示过一些使用发光效果的网站,今天我们将展示更多的此类网站设计,从这些网站中你将会看到不同的实现方式和不同类型的效果. Design Slurp Staak Beautiful 2.0 Levon.co.za Songkick Ulrich Egouy Fred Maya Pixelpanzer Rareview

利用OpenGL实现动画效果

本程序主要通过不断改变视口位置来模仿动画效果,同时介绍了在进行opengl绘图时所做的一些不可或缺的准备工作. 一.首先新建一个 "Win32 Application" 的空工程.  二.然后将 "glu32.lib glaux.lib opengl32.lib" 引入工程之中. 三.在工程->设置->General里将 "Microsoft Foundation Classes" 改为"Use MFC in a Stati