第三章 三角学应用Ⅱ [FL 基理译]
2009-05-30 12:08:41 来源:WEB开发网在这里dx和dx的值是用 sprite1 的位置减去当前鼠标位置得出的,dist的值放入一个文本框中进行显示,并在影片和鼠标之间绘制一条线(在下一章绘图API中会学到)。最后,将所有这些代码放到处理函数 onMouseMove 中,每次鼠标移动时进行刷新。测试一下这个文件,并移动鼠标,鼠标与影片剪辑之间会连接上一条线,并实时读取线的长度。
后面的章节中,在学到碰撞检测时,我们会发现内置的碰撞检测(hit testing)方法存在着先天不足,然后会看到使用勾股定理公式完成基于距离(distance-based)碰撞检测方法。它还非常适合用于计算重力或弹力等,因为这些力的大小与两个物体之间的距离成正比。
本章重要公式
现在我们已经有了一个全新的工具箱,同时又多了不少工具,全部所有的工具将会在第19章列出,那么让我们看看现在都有了哪些工具。注意,这些公式非常地抽象和简化,里面不包括数据类型和变量定义,在类中使用这些公式时,是否使用这些给出的句型取决于你。
基本三角函数的计算:
角的正弦值 = 对边 / 斜边
角的余弦值 = 邻边 / 斜边
角的正切值 = 对边 / 邻边
角度制与弧度制的相互转换:
弧度 = 角度 * Math.PI / 180
角度 = 弧度 * 180 / Math.PI
向鼠标旋转(或向某点旋转):
// substitute mouseX, mouseY with the x, y point to rotate to
dx = mouseX - sprite.x;
dy = mouseY - sprite.y;
sprite.rotation = Math.atan2(dy, dx) * 180 / Math.PI;
创建波形:
// assign value to x, y or other property of sprite or movie clip,
// use as drawing coordinates, etc.
public function onEnterFrame(event:Event){
value = center + Math.sin(angle) * range;
angle += speed;
}
创建圆形:
// assign position to x and y of sprite or movie clip,
// use as drawing coordinates, etc.
public function onEnterFrame(event:Event){
xposition = centerX + Math.cos(angle) * radius;
yposition = centerY + Math.sin(angle) * radius;
angle += speed;
}
创建椭圆:
// assign position to x and y of sprite or movie clip,
// use as drawing coordinates, etc.
public function onEnterFrame(event:Event){
xposition = centerX + Math.cos(angle) * radiusX;
yposition = centerY + Math.sin(angle) * radiusY;
angle += speed;
}
计算两点间距离:
// points are x1, y1 and x2, y2
// can be sprite / movie clip positions, mouse coordinates, etc.
dx = x2 – x1;
dy = y2 – y1;
dist = Math.sqrt(dx*dx + dy*dy);
更多精彩
赞助商链接