想在AS3里实现圆周运动,咱们通常都这么写:编程
var centerX:Number = 300; var centerY:Number = 200; var radius:Number = 20; var degree:Number = 0; addEventListener(Event.ENTER_FRAME, enterFrameHandler); function enterFrameHandler(event:Event):void{ display.x = centerX + radius * Math.cos(degree * Math.PI / 180); display.y = centerY + radius * Math.sin(degree * Math.PI / 180); degree += 5; }
其中centerX和centerY分别是圆心的x坐标和y坐标,radius为圆周的半径,degree是当前角度。
代码中出现了cos和sin两个三角函数,可别以为这些中学的基础知识你们都懂,没准就在高中毕业当天,就有很多人把这些函数都还给老师了。就像iloveas,除了“欲穷干里日”一句外,小学课本里教过的古诗词都早给我忘的一干二净了。
那么,有没办法不经过这些蛋疼的三角函数来实现一样的效果呢?说到这里,大神们估计很容易想到向量、矩阵等高端货,不过今天iloveas给你们分享一个更简单的作法,只要一行代码,什么弦什么切的均可以一边凉快去了:函数
var pt:Point = Point.polar(radius, degree * Math.PI / 180); display.x = centerX + pt.x; display.y = centerY + pt.y;
若是你喜欢装逼,那如下写法会更适合你:blog
var pt:Point = Point.polar(radius, degree * Math.PI / 180).add(new Point(centerX, centerY)); display.x = pt.x; display.y = pt.y;
不能否认的是,iloveas今天介绍的方法在运行效率方面比本身写三角函数要差的多,但它很适合像iloveas这样的数学白痴们入门编程这一行。在这点上,AS3确实作的比其余语言好,因此无论AS3的明天何去何从,你们都来多多支持AS3吧。数学