【发布时间】:2011-06-26 14:21:38
【问题描述】:
我正在使用这个函数,它围绕一个中心点在一个完美的圆圈中移动一个对象,并试图修改它以将它移动为一个椭圆形,它的高度是宽度的 1/2?
基本上,我有一个固定的速度
var myVelocity:Number = 0.25;
然后我根据速度计算我的正弦和余弦
var myCos:Number = Math.cos(myVelocity);
var mySin:Number = Math.sin(myVelocity);
然后我计算对象到每个轴的固定中心点的距离,然后
var x1:Number = myBall.x - centerX;
var y1:Number = myBall.y - centerY;
var x2:Number = myCos * x1 - mySin * y1;
var y2:Number = myCos * y1 + mySin * x1;
myBall.x = centerX + x2;
myBall.y = centerY + y2;
我有另一个函数可以根据 myBall.x = centerX + cos(angle) * radius 计算 x 和 y;这很容易将半径修改为椭圆,但是有没有一种简单的方法可以将上面的半径修改为椭圆?我想这样做是为了提高代码效率并减少数学函数调用的次数
【问题讨论】:
-
应该是
var mySin:Number = Math.sin(myVelocity); -
@weltraumpirat:编辑问题
-
@OXMO456:是的,我知道,但由于@user615460 是这里的新用户,所以我的速度很慢……那里。完成:)
-
@weltraumpirat : 这就是我所拥有的 :) 我正在尝试将它从圆形修改为椭圆。
标签: flash actionscript-3 adobe trigonometry