flash特效原理:螺旋效果 (3)
最近对高数起了很大的兴趣,掏钱买了一本高等数学。发现里面的真是一份宝物,最近看了一个人的博客。关于高等数学的知识,对螺旋线的形态原来不仅仅是一种。过去尝试制作的图形也是一种的方式,现在提及这种螺旋线不是围绕着圆柱形状旋转,而是圆锥。对无错,圆锥体。又是让人觉得不爽的数学,不过细心发觉,这种形态看起来更加像自然界的龙卷风。看起来,很美。
我们之前所做的做法围绕着圆柱的形式旋转,因此螺旋点分布都是落在圆的轨迹上。而圆锥的螺旋形式,同样是落在圆的轨迹上,不过这个是圆是随着他的圆的半径变化而变化。 从这张图说明,螺旋点的分布会随着高度而收缩。最后落在顶端上。
好吧,你一定是高兴来不及尝试写一下这种的实现方式,而相对上一次的代码,仅仅改动的地方很少。
看看下面的效果如何:
image.x=Math.cos(anglePer*i)*(R-i*R/num);//改变半径的变化
image.z=Math.sin(anglePer*i)*(R-i*R/num);//改变半径
而我们所需要改变仅仅是他是半径。半径趋向应该是向圆锥顶点减少,向它的底增加,因此使用这种递减的方式进行模拟出这种效果。
image.x=Math.cos(anglePer*i)*(i*R/num);//改变半径的变化
image.z=Math.sin(anglePer*i)*(i*R/num);//改变半径
我们定义一个R,作为半径作为圆锥体的底圆。而这个是固定的大小的。随着他(i*R/num)变量变化,会趋向于R.接近R。或者(i*R/(num-1))
而这种方式也会让效果发生改变,从图中可以看出,螺旋点分布会随着半径的增大而扩展分布。
package
{
import flash.display.MovieClip;
import flash.events.*;
import flash.geom.PerspectiveProjection;
import flash.geom.Matrix3D;
import flash.geom.Vector3D;
import flash.display.DisplayObject;
public class Main extends MovieClip
{
private var num:int=50;//一共有多少个螺旋点
private var numOfRotations:int=3;//圈数
private var anglePer:Number = ((Math.PI*2) *numOfRotations) / num;
private var R:int=400;//半径
private var h:int=0;//高度
private var contain:MovieClip=new MovieClip();//容器
private var list:Array=new Array();
public function Main()
{
init();
creat3D();
}
private function init():void
{
root.transform.perspectiveProjection.fieldOfView=100;//初始化透视
相关文档:
现在有个灵感,那就是通过鼠标拖动这些小球,鼠标移动的时候,那些小球会跟踪鼠标目标移动。这些只要使用flash 绘图API制作,
就能够完成;
第一步:随机创造一些小球
private function creatBall():void
{
for (var i:int=0; i<10; i++)
{
var ball:Ball=new Ball();
addChild(ball);
l ......
var aa:Boolean = true;
my_btn.onPress = function() {
if (aa == true) {
fscommand("fullscreen", true);
aa = false;
} else {
fscommand("fullscreen", false);
aa = true;
}
};
my_btn是一个按钮 ......
ROM、RAM、DRAM、SRAM、FLASH的区别?
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。
ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM有两大类:一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快, ......
as3.0
../drawingapplication.fla
document class设置为ch6.drawingApplication
../ch6/drawingApplication.as
package ch6 {
import flash.display.Sprite;
& ......
在平面的时候,圆可以认为是椭圆一个特例,而球面也可以认为球椭球面一个特例,但是两者依旧会存在一些差别。这一些差别会产生不同的形状,查阅了一些关于椭球面的资料很皮毛了解一些。
椭球体的方程表示: x2 /a2+y2/b2+z2/c2=1;
参数方程:
(该图片来源于网络)
通常(a≥b≥c>0) ( ......