简单的3D
主要了解一下极坐标公式
x=Math.cos(theta)*r+x0; y=Math.sin(theta)*r+y0; |
比如有5个mc
r=150; mcCounts=5; var i=-1; while(++i<mcCounts){ var mc=_root["mc"+i]; // 指向mc mc.angle = 2*Math.PI/mcCounts*i; // 360平分几个mc,每个mc的角度转弧度 mc._x=Math.cos(mc.angle)*r+100; mc._y=Math.sin(mc.angle)*r+100; // 排列好了,要让他们转 mc.onEnterFrame=function(){ this._x=Math.cos(this.angle)*r+100; this._y=Math.sin(this.angle)*r+100; this.angle++; } } |
可是动动脑子,现在的圆盘是"竖"着的,我们要放平它该怎么样呢?
就等于说,要让看到的圆盘不在是平面上的旋转,而是空间中的旋转...
空间中的旋转视觉会怎么样??
就是离我们近的变大,离我们远的变小,就这么简单:)
再看看刚才我们旋转的圆盘,它的变化都是x方向和y方向的,如果我们把它放平,其实只不过是把x,y方向的变化,变为x方向和大小(xscale,yscale)上的变化,ok,那么我们开始变吧
mcCounts=5; r=150; var i=-1; while(++i<mcCounts){ var mc=_root["mc"+i]; // 指向mc mc.angle = 2*Math.PI/mcCounts*i; // 360平分几个mc,每个mc的角度转弧度 mc._x=Math.cos(mc.angle)*r+100; mc._y=0; mc._xscale=mc._yscale=Math.sin(mc.angle)*r+100; // 排列好了,要让他们转 mc.onEnterFrame=function(){ this._x=Math.cos(this.angle)*r+100; this._xscale=this._yscale=Math.sin(this.angle)*r+100; this.angle++; } } |
这里有了点问题,因为把一张纸摊平的话,是不是位置就会有点变化呢,好好想一下
原来y方向上的变化是不是等于现在x方向的变化,而原来x方向上的变化成为了现在大小上的变化呢
给张图,就好理解了,了解了话,只要改变一下双方的关系就ok了
mc._x=Math.sin(mc.angle)*r+100;
mc._xscale=mc._yscale=Math.cos(mc.angle)*r+100;
mc._xscale=mc._yscale=Math.cos(mc.angle)*r+100;
是不是很简单
